ebo*_*oix 4 c++ performance loops
可能重复:
倒计时比计数更快?
我正在为You ++阅读一本名为C++的C++书.(我有1998年版.)
在关于蒙特卡罗方法的章节中,有一段用于计算定积分的代码:
for(n = nPoints; n > 0; n--) { // A loop that goes down to
x = a + double(rand()) * ((b-a) / RAND_MAX); // 0 is slightly more efficient.
y = ...
... // if (y <= f(x)) increment count
...
}
Run Code Online (Sandbox Code Playgroud)
我的问题不是关于代码,而是关于评论:
降低到0的循环稍微有效.
这是真的?????
为什么循环降至零比升序循环更有效?
n
,循环计数器,甚至没有在循环中使用!
同样,这不是一个迫切的问题.我只是好奇.我可能偶然发现了一种让我的程序更高效的方法!
我希望在目前的处理器上,效果最多可以忽略不计.但是,值得注意的是,处理器具有专用指令以便与零进行比较,这在逻辑上可能比与变量的比较更快并且可能保存寄存器.因此,严格来说,它会更快,因为处理器具有内置的特殊情况.