我得到了两个几乎相同的循环,但性能有显着差异,均使用 MSVC2010 在系统 ~2.4 GHZ 和 8GB RAM 上进行测试
下面的循环需要大约 2500 毫秒来执行
for (double count = 0; count < ((2.9*4/555+3/9)*109070123123.8); count++)
;
这个循环在不到 1 毫秒的时间内执行
for (double count = ((2.9*4/555+3/9)*109070123123.8); count >0; --count)
;
是什么在这里产生了如此巨大的差异?一个得到后增量,另一个使用前增量会导致如此巨大的差异吗?