Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;定义一个';更好';发布模式内置VS_C++_Visual Studio_Release_Compiler Optimization_Release Mode - Fatal编程技术网

C++ C++;定义一个';更好';发布模式内置VS

C++ C++;定义一个';更好';发布模式内置VS,c++,visual-studio,release,compiler-optimization,release-mode,C++,Visual Studio,Release,Compiler Optimization,Release Mode,我目前使用以下预处理器定义和各种优化设置: WIN32_LEAN_和_MEAN 超精益 诺曼马克斯 _CRT\u安全\u无警告 _SCL\u安全\u无警告 _安全\u SCL=0 _具有\u迭代器\u调试=0 我的问题是,其他SOOER使用什么,添加,定义,以便从VS C++(20082010)获得一个强的发布模式 >构建,以尽可能地发挥作用?p> BTW,我尝试过PGO等,它确实有帮助,但是没有什么东西能与GCC奇偶校验,也不是用流,C++我更喜欢C,而是利用模板和STL算法等等。 目前

我目前使用以下预处理器定义和各种优化设置:

  • WIN32_LEAN_和_MEAN
  • 超精益
  • 诺曼马克斯
  • _CRT\u安全\u无警告
  • _SCL\u安全\u无警告
  • _安全\u SCL=0
  • _具有\u迭代器\u调试=0
我的问题是,其他SOOER使用什么,添加,定义,以便从VS C++(20082010)获得一个强的发布模式<强> >构建,以尽可能地发挥作用?p>

BTW,我尝试过PGO等,它确实有帮助,但是没有什么东西能与GCC奇偶校验,也不是用流,C++我更喜欢C,而是利用模板和STL算法等等。 目前,与GCC在运行linux(2.6+内核)的等效x86机器上使用02时产生的性能相比,非常简单的代码段在wrt性能上显得微不足道


<强>边注:我相信很多问题直接与MS提供的STL版本(Dinkum)有关。请大家详细介绍使用STLPUT等与VC++的经验。

< P> >我不明白如何包含:

_CRT_SECURE_NO_WARNINGS
_SCL_SECURE_NO_WARNINGS
…为您提供更好或更高性能的构建。您所做的只是禁用有关MS CRT弃用函数的警告。如果您这样做是因为您知道自己在做什么,并且需要平台无关的代码,那么很好,否则我会重新考虑

更新:此外,编译器只能做这么多。我敢打赌,如果你检测并修复了现有的热点,而不是试图从编译和链接阶段获得很小的收益,你会得到更高性能的代码


UPDATE2:_HAS_ITERATOR_在编译发布版本时,根据
WIN32_LEAN_和_意味着
VC_EXTRALEAN
(并且可能是
NOMINMAX
,尽管性能不是禁用此功能的主要原因)可能会给您带来一些性能提升,尽管其余的都有可疑的价值。您应该支持正确的快速代码,而不是(也许-我强调也许)稍微快一点但更容易发生风险的代码。

您还应该在“C/C++”、“优化”和“C/C++”、“代码生成”下列出您在项目属性中指定的设置,因为这些会极大地影响编译器将要进行的优化。其中大多数对性能没有影响,只是简单地删除警告或加快编译。无论如何,根据我的经验,VC++和GCC生成的代码的性能大致相当。你看到的差异有多大,每一个编译器都是如何调用的?这不是性能相关的,但是你应该考虑从微软SDL中使用Win32应用程序的<代码>禁用。最终字典会流行起来。:-)(根据杰夫·博尔特的说法)@Charles:根据Dictionary.com的说法,的确如此。它是表演者,就像告密者是告密者一样。然而,我认为这是一个更适合表达这个概念的词,毕竟,英语词典是描述性的,而不是规定性的。@Charles:噢,你怎么认为单词“……在任何一种专业背景下都能达到这一点”?也许,通过使用它们?!放开它。英语在我们眼前正在衰退。你不能阻止它!当你能听懂别人说的话时,你就觉得自己很幸运。如果没有人使用英语的话,英语会更好。就像拉丁语一样至于“performant”,我经常看到这个词被使用。如果你想谈论看起来无知,我会说假装不懂这个词是更好的方法。@Charles:arnoldzwicky是斯坦福大学的语言学教授。今年早些时候,他在自己的研究中引用了Dictionary.com的词典作为来源:。另外,我应该在之前说,我不同意你把这个词归类为俚语。如果被贴上任何标签,那就是行话,在专业背景下写作时,使用你所写的专业术语是完全可以接受的。表演是一个真实的词;不查字典并不能改变这一点。