當我從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