当我从VS6升级到VS2005时,我看到我的国际象棋引擎程序的速度提高了10%,并带有默认编译设置。在VS2005,VS2008下产生C++的EXE速度; VS2010编译器
想知道一般情况下是否也是如此,以及从那以后对MS C++编译器的最终输出做了哪些改进(如果有的话)。
当我从VS6升级到VS2005时,我看到我的国际象棋引擎程序的速度提高了10%,并带有默认编译设置。在VS2005,VS2008下产生C++的EXE速度; VS2010编译器
想知道一般情况下是否也是如此,以及从那以后对MS C++编译器的最终输出做了哪些改进(如果有的话)。
关于从版本移动到VC++ 2010+ VC++之前2010:
如果大量使用STL容器和算法的,升级到VC++ 2010+可以提供基本上不止10%的改进,因为VC++ 2010+实现C++ 11的移动语义。
我记得,声称从VC移动++ 2008年到VC++ 2010为这样的结果时,他们的应用程序的性能提高了900%的Boost邮件列表上的特定岗位:
[boost] [GGL] [geometry] Inexplicable speed benefit when using Visual C++ 2010
我很确定每个版本都至少增加了一点新的/更好的优化方式。对于大多数我测试过的代码,连续版本之间的改进是3-4%左右,所以你可能看到另外10%的改进,但我有点期待少更少。
有限自动矢量介绍在VS2012中(VS2010中需要simd内在函数)可能有助于说明Boost引用。 VS2013在我的测试中显示比VS2012更多的损失。 VS2013和2015似乎更倾向于引入新的语法而不是性能。
是啊10%让我感到惊讶。 – 2011-04-05 22:19:30