24小时热门版块排行榜    

查看: 1658  |  回复: 10
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

lixy1217

木虫 (著名写手)

[求助] 求C语言基本运算的运行时间分析

由于偶是计算数学专业的,对计算时间比较在意,所以很想知道在C中各种基本运算的计算量差别大小,可是对计算机了解较少,而且现在也不可能有时间去研究机器语言,所以希望在此得到高人相助

包括整型、浮点型的 +  -  *  /  =  +=   -=   *=   /=, if  和  for  还有函数调用这些流程控制所占用时间,不需要多么精确地知道其差别,只想知道在运行时间上谁比谁多一点,谁跟谁差不多,或者谁比谁大的多,或者谁跟谁比可忽略不计

自己做过一些试验,但由于干扰因素太多,很多信息都无法测量出来,但也得出了一些结论,比如,四则运算中  加法与减法一样,乘法稍微多一点,除法多很多,另外,如果一个变量进行值得改变,那么它在下一次计算中计算时间明显减少。希望这些能够抛砖引玉,了解更多相关内容
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

偶尔敞开心扉,世界将不再孤独
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

holmescn

金虫 (正式写手)


jjdg(金币+1): 感谢参与 2011-11-10 13:09:56
我想LZ想知道的是ALU的计算效率。如果单从语言,特别是非汇编语言(就算是汇编语言一也一样)是没法比较运算符的效率的。现代CPU架构的复杂性,已经很难理论评估计算时间了。如sudo所说,这里面包含了太多细节。

粗略估计的话,整数的加减运算参考CPU的频率,乘除大概是几个CPU周期。浮点运算更复杂一些,开使用了什么FPU。

现在如果在乎计算效率的话,不是在乎每个周期做多少运算(当然高效的算法是最重要的),而是优化代码流程,达到满流水线和高cache命中。减少内存访问以及其他的IO。

不过我觉得计算数学的话,还是关注大O和并发/并行计算以及分布式计算更重要吧。
8楼2011-11-10 09:57:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 11 个回答

文俊点点

木虫 (著名写手)

【答案】应助回帖


xzhdty(金币+1): 简单明了 2011-11-03 17:00:21
lixy1217(金币+1): 我确实是百度和谷歌了的,可没找到我想要的信息,如果你百了很多,那能否推荐个链接? 2011-11-03 22:31:33
百度一下  谷歌一下  这些东西很多的·······
我白了一下很多的········
这是你所拥有的时间·····这是你所能改变的生活·········
2楼2011-11-03 12:39:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sudo

木虫 (正式写手)

【答案】应助回帖

★ ★
lixy1217(金币+9): 这个问题看起来貌似很复杂啊~ 2011-11-04 09:46:48
余泽成(金币+2): 谢谢参与应助! 2011-11-08 17:56:03
如果想极端优化,楼主需要的是一张列有时钟周期数的汇编指令表,针对某个你使用的特定的CPU。不然就看分割线以下的内容。

单纯地对C语句进行分析是显然不行的,编译器在背后做的大量的优化工作有时候会让你很惊讶。像整型数*2会被优化为左移这种事情早就稀松平常了,复杂得多、匪夷所思的优化在现代编译器中比比皆是。程序实际的走法,可能和你原来设计的是不一样的,编译器只保证结果是对的(=,=虽然偶尔有BUG不过确实这是追求的目标)。

优化之路还没在计算时钟周期数这里结束,怎么产生让CPU流水线最大效益化(像Intel特地还出了The Software Vectorization Handbook还告诉程序员这方面的一点事情),也是追求极致效果的程序员需要学习的

=========以上是比较极端的做法=========

其实呢,主导计算速度的东西,是“算法”啊!再者就是代码的可读性的权衡的问题。现在因为设备的计算能力已经提高很多,设计C程序的时候一般不会考虑太细的优化问题了。所以其实楼主不用纠结太多,一般不会有数量级上的时间差的。
3楼2011-11-04 09:20:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sudo

木虫 (正式写手)

算法不好的话,JAVA都比C快的哦...
4楼2011-11-04 09:22:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿国科过程所081700,274求调剂 +3 三水研0水立方 2026-03-23 3/150 2026-03-23 23:11 by MajorWen
[考研] 335分 | 材料与化工专硕 | GPA 4.07 | 有科研经历 +4 cccchenso 2026-03-23 4/200 2026-03-23 23:00 by 徐ckkk
[考研] 化学308分求调剂 +3 你好明天你好 2026-03-23 3/150 2026-03-23 20:11 by macy2011
[考研] 303求调剂 +4 元夕元 2026-03-20 4/200 2026-03-23 19:00 by macy2011
[考研] 招08考数学 +6 laoshidan 2026-03-20 14/700 2026-03-23 14:37 by 15614359529
[考研] 求老师收我 +3 zzh16938784 2026-03-23 3/150 2026-03-23 12:56 by ztnimte
[考研] 北科281学硕材料求调剂 +8 tcxiaoxx 2026-03-20 9/450 2026-03-23 12:16 by tcxiaoxx
[考研] 275求调剂 +6 shansx 2026-03-22 8/400 2026-03-22 15:27 by barlinike
[考研] 求调剂 +7 Auroracx 2026-03-22 7/350 2026-03-22 12:38 by 素颜倾城1988
[考研] 一志愿南大,0703化学,分数336,求调剂 +3 收到VS 2026-03-21 3/150 2026-03-21 18:42 by 学员8dgXkO
[考研] 0703化学297求调剂 +3 Daisy☆ 2026-03-20 3/150 2026-03-21 17:45 by ColorlessPI
[考研] 336求调剂 +5 rmc8866 2026-03-21 5/250 2026-03-21 17:24 by 学员8dgXkO
[考研] 一志愿重庆大学085700资源与环境总分308求调剂 +7 墨墨漠 2026-03-20 7/350 2026-03-21 16:36 by barlinike
[考研] 332求调剂 +3 凤凰院丁真 2026-03-20 3/150 2026-03-21 10:27 by luoyongfeng
[考研] 材料 336 求调剂 +3 An@. 2026-03-18 4/200 2026-03-21 01:39 by JourneyLucky
[考研] 求调剂,一志愿:南京航空航天大学大学 ,080500材料科学与工程学硕,总分289分 +4 @taotao 2026-03-19 4/200 2026-03-20 22:14 by JourneyLucky
[考研] 一志愿苏州大学材料求调剂,总分315(英一) +5 sbdksD 2026-03-19 5/250 2026-03-20 22:10 by luoyongfeng
[考研] 生物学调剂招人!!! +3 山海天岚 2026-03-17 4/200 2026-03-19 21:34 by 怎么释怀
[考博] 申博26年 +3 八6八68 2026-03-19 3/150 2026-03-19 19:43 by nxgogo
[考研] 材料,纺织,生物(0856、0710),化学招生啦 +3 Eember. 2026-03-17 9/450 2026-03-18 10:28 by Eember.
信息提示
请填处理意见