24小时热门版块排行榜    

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

lixy1217

木虫 (著名写手)

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

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

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

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

» 猜你喜欢

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

偶尔敞开心扉,世界将不再孤独
已阅   回复此楼   关注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的回帖
查看全部 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

木虫 (正式写手)

算法不好的话,JAVA都比C快的哦...
4楼2011-11-04 09:22:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lixy1217

木虫 (著名写手)

引用回帖:
3楼: Originally posted by sudo at 2011-11-04 09:20:27:
如果想极端优化,楼主需要的是一张列有时钟周期数的汇编指令表,针对某个你使用的特定的CPU。不然就看分割线以下的内容。

单纯地对C语句进行分析是显然不行的,编译器在背后做的大量的优化工作有时候会让你很惊 ...

汇编语言我暂时肯定没时间去研究,其实我的目的也很单纯,我就想知道C程序关于浮点型变量的一般的加减乘除运算从运行时间上有没有倍数上的差别,这样以后在计算编程时就可以稍加注意一下了。
偶尔敞开心扉,世界将不再孤独
5楼2011-11-04 09:46:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 275求调剂 +4 明远求学 2026-03-01 4/200 2026-03-02 12:45 by 无际的草原
[考研] 292求调剂 +7 yhk_819 2026-02-28 7/350 2026-03-02 12:43 by 无际的草原
[考研] 求调剂 +3 熬夜的猫头鹰 2026-03-02 3/150 2026-03-02 11:45 by 刘兵
[考研] 化工270求调剂 +7 什么名字qwq 2026-03-02 7/350 2026-03-02 11:26 by yuchj
[考研] 295求调剂 +8 19171856320 2026-02-28 8/400 2026-03-02 11:19 by yuchj
[考研] 材料调剂 +6 爱擦汗的可乐冰 2026-02-28 7/350 2026-03-02 10:42 by Jy?
[考研] 275求调剂 +3 L-xin? 2026-03-01 6/300 2026-03-02 10:22 by 热情沙漠
[考研] 材料学调剂 +10 提神豆沙包 2026-02-28 12/600 2026-03-02 09:26 by 李老师!
[考研] 282求调剂 +3 2103240126 2026-03-02 4/200 2026-03-02 09:25 by 汪!?!
[考研] 322求调剂 +3 熊境喆 2026-03-01 3/150 2026-03-02 08:44 by houyaoxu
[考研] 0857调剂 +4 一ll半 2026-02-28 5/250 2026-03-02 02:33 by 908055542
[考研] 279求调剂 +3 dua1 2026-03-01 4/200 2026-03-02 00:23 by 大脸蛋子
[硕博家园] 博士自荐 +7 科研狗111 2026-02-26 11/550 2026-03-01 22:24 by 哲平L
[考研] 306分材料调剂 +4 chuanzhu川烛 2026-03-01 5/250 2026-03-01 19:48 by 无际的草原
[考研] 化工299分求调剂 一志愿985落榜 +5 嘻嘻(*^ω^*) 2026-03-01 5/250 2026-03-01 19:47 by 无际的草原
[考研] 291分工科求调剂 +9 science饿饿 2026-03-01 10/500 2026-03-01 18:55 by 18137688336
[考研] 313求调剂 +3 水流年lc 2026-02-28 3/150 2026-03-01 16:01 by 新能源达人
[考研] 311求调剂 +6 亭亭亭01 2026-03-01 6/300 2026-03-01 15:41 by 324616
[考研] 求调剂 +6 repeatt?t 2026-02-28 6/300 2026-03-01 14:37 by Sakura绘
[考研] 304求调剂 +3 52hz~~ 2026-02-28 5/250 2026-03-01 00:00 by 52hz~~
信息提示
请填处理意见