24小时热门版块排行榜    

查看: 1650  |  回复: 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的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 理学,工学,农学调剂,少走弯路,这里欢迎您! +5 likeihood 2026-03-02 8/400 2026-03-02 20:39 by ji493940045
[考研] 276求调剂 +5 路lyh123 2026-02-28 6/300 2026-03-02 20:35 by hypershenger
[考研] 085600材料工程一志愿中科大总分312求调剂 +9 吃宵夜1 2026-02-28 11/550 2026-03-02 20:14 by hypershenger
[考研] 材料工程274求调剂 +5 Lilithan 2026-03-01 5/250 2026-03-02 19:39 by caszguilin
[考研] 085600 英一数二272求调剂 5+6 vida_a 2026-03-01 16/800 2026-03-02 19:13 by zhukairuo
[考研] 295求调剂。一志愿报考郑州大学化学工艺学硕,总分295分 +7 yl1 2026-03-02 7/350 2026-03-02 19:03 by zhukairuo
[考研] 材料调剂 +3 恒顺自然 2026-03-02 3/150 2026-03-02 18:49 by L135790
[考研] 江苏省农科院招调剂1名 +4 Qwertyuop 2026-03-01 4/200 2026-03-02 14:27 by 升格阿达
[基金申请] 面上模板改不了页边距吧? +6 ieewxg 2026-02-25 7/350 2026-03-02 12:44 by stidwellNK
[考研] 材料学硕318求调剂 +14 February_Feb 2026-03-01 16/800 2026-03-02 11:17 by yuchj
[考研] 281求调剂 +5 2026计算机_诚心 2026-03-01 8/400 2026-03-02 11:05 by 汪!?!
[考研] 274求调剂 +3 cgyzqwn 2026-03-01 7/350 2026-03-02 10:38 by lature00
[考研] 调剂 +3 13853210211 2026-03-02 4/200 2026-03-02 10:16 by 13853210211
[基金申请] 本子写完了,给DS兄弟看了,得了92分 +3 Doma 2026-03-01 7/350 2026-03-02 00:00 by jnzsy
[硕博家园] 博士自荐 +7 科研狗111 2026-02-26 11/550 2026-03-01 22:24 by 哲平L
[考博] 26申博 +4 想申博! 2026-02-26 6/300 2026-03-01 17:32 by 想申博!
[考研] 328求调剂 +3 aaadim 2026-03-01 5/250 2026-03-01 17:29 by njzyff
[考研] 321求调剂一志愿东北林业大学材料与化工英二数二 +4 虫虫虫虫虫7 2026-03-01 7/350 2026-03-01 16:52 by caszguilin
[考研] 304求调剂 +6 曼殊2266 2026-02-28 7/350 2026-03-01 15:14 by wjLi2017
[论文投稿] 求助coordination chemistry reviews 的写作模板 10+3 ljplijiapeng 2026-02-27 4/200 2026-03-01 09:07 by babero
信息提示
请填处理意见