当我从VS6升级到VS2005时,我看到我的国际象棋引擎程序的速度提升了10%,并带有默认的编译设置。
想知道一般情况是否一样,以及从那时起对MS C ++编译器的最终输出做了哪些改进(如果有的话)。
答案 0 :(得分:6)
关于从2010年之前的VC ++版本迁移到VC ++ 2010+:
如果大量使用STL容器和算法,升级到VC ++ 2010+可能会提供基本,而不仅仅是10%的改进,因为VC ++ 2010 +实现了C ++ 11的移动语义。
我记得Boost邮件列表中的一篇特定帖子声称,当他们从VC ++ 2008迁移到VC ++ 2010时,他们的应用程序性能提高了900%:
[boost] [GGL] [geometry] Inexplicable speed benefit when using Visual C++ 2010
答案 1 :(得分:2)
我很确定每个版本至少增加了一些新的/更好的优化方式。对于我测试的大多数代码,连续版本之间的改进大约为3-4%,因此可能看到另外10%的改进,但我有点期待小少。
答案 2 :(得分:0)
VS2012中引入的有限自动矢量化(VS2010中所需的simd内在函数)可能有助于解释Boost报价。在我的测试中,VS2013对VS2012的损失大于收益。 VS2013和2015似乎更倾向于引入新语法而不是性能。