6 c++ release release-mode compiler-optimization visual-studio
我目前使用以下预处理器定义,以及各种优化设置:
我的问题是SOers使用,添加,定义的其他东西是什么,以便从VS C++(2008,2010)获得尽可能高效的发布模式?
顺便说一句,我已经尝试了PGO等,它确实有点帮助,但没有任何与GCC相提并论,我也没有使用流,C++我说的更像是C,但是使用模板和STL算法等等
现在看起来非常简单的代码段,与GCC相比,使用02运行linux(2.6+内核)的等效x86机器所产生的性能相比显得苍白无力.
侧注:我相信很多问题都与MS提供的STL版本(Dinkum)直接相关.人们可以请详细说明使用STLPort等与VS C++的经验.
我不明白如何包含:
_CRT_SECURE_NO_WARNINGS
_SCL_SECURE_NO_WARNINGS
Run Code Online (Sandbox Code Playgroud)
..为您提供更好或更高性能的构建。您所做的就是禁用有关 MS CRT 已弃用功能的警告。如果您这样做是因为您知道自己在做什么并且需要与平台无关的代码,否则我会重新考虑。
更新:此外,编译器只能做这么多。我敢打赌,如果您检测并修复现有的热点,而不是试图从编译和链接阶段寻求微小的百分比(如果是的话)收益,您将获得更高性能的代码。
UPDATE2:根据 MSDN,无论如何在编译发行版本时都不能使用_HAS_ITERATOR_DEBUGGING。WIN32_LEAN_AND_MEAN VC_EXTRALEAN(尽管NOMINMAX性能可能不是禁用此功能的主要原因)可能会给您带来一些性能提升,尽管其余所有功能的价值都值得怀疑。您应该偏爱正确的快速代码,而不是(也许- 我强调也许)稍快但更容易出现风险的代码。