计算密集型C / C ++程序的典型性能瓶颈是什么?

时间:2013-04-02 23:40:16

标签: c++ c performance intel

程序的典型性能瓶颈是什么(C / C ++)

我写过一些涉及大量计算的程序,但是,我发现通过将计算从double更改为single浮点运算,它很少,如果有的话,给了我很多性能改进即使我在代码中使用了很多SIMD指令,程序也会逐块处理数据,而不是逐个处理。

通过将数据从double更改为single,SIMD单元可以处理两倍的计算单位,并且就可以传输的变量而言,内存带宽也会有所改善,如果不加倍的话。

然而,性能差异几乎无法辨认(有点5%)。

可能的原因是什么?这样做是因为计算(sandy bridge)在某种程度上受指令限制,因为CPU每个周期只能发出有限数量的指令吗?

1 个答案:

答案 0 :(得分:1)

您可以优化任何程序的数量有限。

查看Big O notation