下降循环比上升循环更有效吗?
问题描述:
可能重复:
Is it faster to count down than it is to count up?下降循环比上升循环更有效吗?
我正在读一本C++的书叫C++ for You++。 (我有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
...
}
我的问题是不是代码,而有关评论:
其降低到0环路是稍微更有效。
,这是真的?????
循环下降到零,为什么会比上升的循环更有效率?
n
,循环计数,甚至没有用在循环!
同样,这不是一个紧迫的问题。我只是好奇。我可能会偶然发现一些让我的程序更高效的方法!
答
我预计当前的处理器上,其效果充其量是微不足道的。然而,值得注意的是处理器有专门的指令比较为零,这在逻辑上可能比与变量相比更快,并可能保存一个寄存器。因此,严格来说,它会更快,因为处理器有一个内置的特殊情况。
+0
另外,您不能保证编译器会生成类似于您所写的代码。 – 2012-01-01 18:22:47
http://stackoverflow.com/questions/2823043/is-it-faster-to-count-down-than-it-is-to-count-up – Mysticial 2012-01-01 18:15:51
谢谢!哇。我没有看到。我是否应该将问题作为重复来解决? – eboix 2012-01-01 18:16:28
别担心,我们会为您做到这一点。很好的问题,但。 :) +1 – Mysticial 2012-01-01 18:17:04