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

Any*_*orn 12 c++ optimization performance g++ c++11

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

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

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

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

谢谢.

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

GMa*_*ckG 8

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

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

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

  • 如果有任何东西,由于移动语义,你几乎可以立即获益 (3认同)