当我从VS6升级到VS2005时,使用默认的编译设置,我的国际象棋引擎程序速度提高了10%。
想知道是否普遍存在这种情况,以及自那时以来MS C++编译器的最终输出是否有所改进。
当我从VS6升级到VS2005时,使用默认的编译设置,我的国际象棋引擎程序速度提高了10%。
想知道是否普遍存在这种情况,以及自那时以来MS C++编译器的最终输出是否有所改进。
关于从VC++ 2010+迁移至2010之前版本的问题:
如果您大量使用STL容器和算法,则升级到VC++ 2010+可能会提供显著的改进,因为VC++ 2010+实现了C++11的移动语义。
我记得Boost邮件列表上有一篇具体文章声称他们的应用程序在从VC++ 2008迁移到VC++ 2010后性能提高了900%:
[boost] [GGL] [geometry] Inexplicable speed benefit when using Visual C++ 2010
我相信每个版本都至少在新/更好的优化方面增加了一点。对于我测试过的大多数代码,改进在连续版本之间约为3-4%,因此您可能会看到另外10%的改进,但我认为应该会稍微少一点。
在VS2012中引入的有限自动向量化(需要VS2010中的simd内嵌函数)可能有助于解释Boost报价的原因。在我的测试中,VS2013显示出比VS2012更大的损失。 VS2013和2015似乎更加注重引入新语法而不是性能。