在VS2005、VS2008和VS2010编译器下,C++生成的EXE运行速度如何?

4

当我从VS6升级到VS2005时,使用默认的编译设置,我的国际象棋引擎程序速度提高了10%。

想知道是否普遍存在这种情况,以及自那时以来MS C++编译器的最终输出是否有所改进。

3个回答

6

关于从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


2

我相信每个版本都至少在新/更好的优化方面增加了一点。对于我测试过的大多数代码,改进在连续版本之间约为3-4%,因此您可能会看到另外10%的改进,但我认为应该会稍微少一点。


是的,10%对我来说很令人惊讶。 - John Shedletsky

0

在VS2012中引入的有限自动向量化(需要VS2010中的simd内嵌函数)可能有助于解释Boost报价的原因。在我的测试中,VS2013显示出比VS2012更大的损失。 VS2013和2015似乎更加注重引入新语法而不是性能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接