为什么第一个循环的剂量总是比第二个循环快?

时间:2017-12-23 08:41:42

标签: c++

尤其是,周期数越多,差异就越明显。

在没有优化的情况下用g ++进行测试

__init__
  

有人可能不相信我,我也是。但在这段代码中,第一个循环至少比第二个循环快两倍。

1 个答案:

答案 0 :(得分:2)

我怀疑这是一个流水线问题。在第一个循环中,您正在写入两个不同的内存位置,因此第二个添加不需要等待第一个完成,并且CPU可以同时执行这两个操作。

在第二个循环中,您将两次递增相同的变量,因此第二个循环必须等待第一个变量完成。这会减慢管道。