C ++ 0x优化编译器质量

时间:2010-04-20 23:49:09

标签: c++ performance optimization g++ c++11

我做了一些重数据,对我而言,浮点性能非常重要。 我非常喜欢英特尔编译器的性能,并且对它产生的组件质量非常满意。

我想在某些方面尝试C ++ 0x主要用于糖部分,如auto,初始化列表等,还有lambdas。在这一点上,我通过boost来使用常规C ++中的这些功能。

编译器C ++ 0x生成的汇编代码有多好?特别是英特尔和gcc编译器。 他们生产SSE代码吗?性能是否与C ++相当?有基准吗?

我的谷歌搜索没有透露太多。

谢谢。

ps:在某些时候我会亲自测试它,但想知道相对于C ++会发生什么。

1 个答案:

答案 0 :(得分:8)

您可以期望对代码进行相同的优化,因为编译器在优化时肯定没有变得更糟。因此,仅使用新的C ++ 0x功能可能会对其产生影响。但我怀疑你的核心例程会突然完全改变,以某种方式使用C ++ 0x-only功能。

请记住像auto和lambda这样的东西只是语法糖。这对编译器优化没有影响,因为它们只是生成相同代码的方法。所以你只需要担心初始化列表之类的新“东西”。但如果效率低下,我会感到惊讶。

由于移动语义,您还应该期待许多改进。您不再需要复制数据,而只是移动数据。设计您的代码以充分利用这一优势。

相关问题