【问题标题】:Maximum performance configuration for a release build VS2010发布版本 VS2010 的最高性能配置
【发布时间】:2013-06-20 08:25:03
【问题描述】:

我想知道发布版本可以获得的最佳性能配置。我在发布版本中不需要任何调试信息,如果省略它有助于提高发布版本中的性能,我非常乐意遵守这些更改。 请让我知道这些设置是否可以接受,或者是否应该更改这些设置中的任何一个以获得更好的性能。这是我的配置

构建类型:发布

调试信息格式:程序数据库(/Zi)

预处理器:以下是预处理器

WIN32 QT_LARGEFILE_SUPPORT QT_DLL QT_NO_DEBUG NDEBUG QT_CORE_LIB QT_GUI_LIB

生成调试信息:是 (/Debug)

优化:最大化速度 (/O2)

整个程序优化:否

整个配置概览

/I".\GeneratedFiles" /I"." /I"C:\Qt\4.8.4\include" /I".\GeneratedFiles\Release" /I"C:\Qt\4.8.4\include\QtCore" /I"C:\Qt\4.8.4\include\QtGui" /I"....\外部\boost-win-1.47-32bit-vs2010\include\boost-1_47" /I"....\外部\ta-lib-0.4.0-msvc\ta-lib\c\include\" /I"..\External\Qpid-32Bit\Debug\include\" /I"..\Common\" /I"....\External\log4cplus-1.1.2-rc1\include" /Zi /nologo /W1 /WX- /O2 /Oy- /D "WIN32" /D "QT_LARGEFILE_SUPPORT" /D "QT_DLL" /D "QT_NO_DEBUG" /D "NDEBUG" /D "QT_CORE_LIB" /D "QT_GUI_LIB" /Gm- /EHsc /MD /GS /fp:精确 /Zc:wchar_t- /Zc:forScope /Fp"Release\WOPR.pch" /Fa"Release\" /Fo"Release\" /Fd"Release\vc100.pdb" /Gd /analyze- /errorReport:队列

是否应更改上述任何选项以获得最大的运行时性能。 如果我遗漏了任何选项,请告诉我。

【问题讨论】:

  • Whole Program Optimization : Yes ?
  • 那么当我将整个程序优化设置为是时,我是否还必须启用链接时间代码生成?如果是这样,链接时间代码生成应该是什么?
  • 是的,/GL 用于编译,/LTCG 用于链接器。但是,不能保证这对您的程序有任何好处。最好的办法是在您的程序中拥有一套定义明确的基准测试,并尝试多种优化选项。
  • 我想你的意思是 /LTCG ?
  • 是的,在我的评论中修复了它。

标签: c++ visual-studio-2010


【解决方案1】:

如果您想从编译器中获得最优化的代码,您可以尝试对关键代码进行配置文件引导优化。然而,这种优化并不像简单地调整编译器选项那么容易实现。

要实现这一点,您将需要一套代表现实生活场景的测试。检测您的代码,运行这些测试,然后:

  • 检测数据会告诉您在哪里您花费了大部分 CPU 时间。尝试(手动)优化代码中似乎占用大量 CPU 的部分。
  • 使用检测数据作为输入再次编译您的关键代码。

我从未在 Visual Studio 中使用过它(仅限英特尔编译器)。 VS2010seems to have profile-guide optimization features.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    • 2017-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多