社区
C语言
帖子详情
困惑很久的代码效率问题!
yfwill
2004-05-08 02:43:57
循环当中
if( i == 100 )
i = 0;
和
i %= 100;
哪个代码效率更高?
...全文
44
7
打赏
收藏
困惑很久的代码效率问题!
循环当中 if( i == 100 ) i = 0; 和 i %= 100; 哪个代码效率更高?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
redleaves
2004-05-08
打赏
举报
回复
if( i == 100 )
i = 0;
这种写法中,开销比较大的是跳转语句.跳转语句会打乱CPU的指令队列,这对于流水线很长的CPU(如新的P4)来说,会有比较大的性能损失.
i %= 100;
这种写法中,开销比较大的是除法.但它不会打乱CPU的指令队列,只要除法运算够快,它对性能的影响应该不是很大.
但是,现在的CPU的指令预取算法的命中率很高,相对地减少了跳转对运算速度的影响.所以,经过测试,跳转比除法要快近20倍.
不过以上写法还存在一种特例.就是当你的N不是100,而是0x100时,编译器就会把除法优化为按位与操作,这时,第二种写法又要比第一种快那么一点点.
sharkhuang
2004-05-08
打赏
举报
回复
反汇编出来看看就知道了
gernal_dn
2004-05-08
打赏
举报
回复
汇编中没有取模,取模只能通过除法进行。
在现在的CPU中,整数的加、减、乘、逻辑运算都可在一个时钟周期内完成,偏偏除法不行。
不过,那两条语句的作用相同么?!
ShadowCpp
2004-05-08
打赏
举报
回复
一般来说没有可比性的。
不过同意这位朋友的说法。
--------------------------------
if( i == 100 )
i = 0;
的效率高,计算机只是做一次减法,判断,在赋值
i %= 100;
是取模,再赋值,取模比较费时
---------------------------------
cngdzhang
2004-05-08
打赏
举报
回复
if( i == 100 )
i = 0;
的效率高,计算机只是做一次减法,判断,在赋值
i %= 100;
是取模,再赋值,取模比较费时
yym314
2004-05-08
打赏
举报
回复
我也想知道
sunwhite
2004-05-08
打赏
举报
回复
我认为这两段代码几乎没有什么可比性嘛
CSRF跨站请求伪造漏洞原理及
代码
审计
环境下载地址:实验环境下载地址在购买后单独发送 课程主要解决
问题
: 1、搞明白什么是,CSRFSRF能做什么事情? 2、CSRF和XSS有什么区别? 3、搞明白CSRF的漏洞
代码
到底是什么样?逐行读
代码
让你看透CSRF。 4、搞懂...
代码
效率
优化
代码
效率
优化总结
代码
执行过程中会消耗计算时间和计算空间,我们希望计算机能够在它的性能范围内更好的运行并且不同的计算机计算时间与空间有各种因素的影响,
代码
可以运行在不同计算机上的,因此关注
代码
本身,...
最令人头疼的Python
问题
!
Python中由于使用了全局解释锁(GIL)的原因,
代码
并不能同时在多核上并发的运行,也就是说,Python的多线程不能并发,很多人会发现使用多线程来改进自己的Python
代码
后,程序的运行
效率
却下降了。这篇文章对Python...
他教全世界程序员怎么写好
代码
,答案写在这里!
点击“博文视点Broadview”,获取更多书讯如果你已经写了好几年
代码
,你写的软件也已经稳定运行了
很久
,你甚至知道有多少用户在使用你的系统,包括你的女友、家人和同学。让系统成功部署和运转能给我们这些程序员...
转:测试十年-我难以逾越的
困惑
和痛苦和思考
很久
没写blog了,之前的测试三年,测试六年都写了blog来记录自己的测试生涯和思考,这次测试10年肯定不会错过了,当然了,YY比较多,干货也不多,反正纪念下,或许我很难写测试15年的blog了。大家有任何
问题
,欢迎...
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章