【问题标题】:Visual Studio 2010 - Favour Size or Speed for optimizationVisual Studio 2010 - 优化大小或速度
【发布时间】:2013-06-24 13:45:47
【问题描述】:

我遇到了选项 C/C++ -> General -> Favor Size or Speed。 我想知道我是否选择了速度选项而不是大小。除了尺寸之外,它们会有什么缺点吗?默认都不是。如果我选择Favor Fast Code /Ot,应用程序的速度会有明显的提升

【问题讨论】:

  • this 应该可以帮到你!我过去都使用过,使用快速代码对你的尺寸有一些影响,但不会产生太大影响。如果您有严格的规格,则必须小心。关于您的资源利用情况。

标签: c++ visual-studio-2010 release


【解决方案1】:

虽然我对这个编译器设置没有深入的了解(我通常更喜欢快速代码,并且再也没有考虑过),但我可以看到这可能会产生什么影响:

在某些处理器上,在某些时间执行某些操作可能会导致停顿。例如,在写入部分寄存器 (AL) 后立即访问完整寄存器 (RAX)。虽然现代处理器通常可以通过重新排序指令来解决这些停顿,但有时它们仍然是不可避免的。

我怀疑通过此设置,编译器有时可能会插入无操作指令以尝试防止发生这些停顿。一般来说,执行一些无操作仍然比停止更快。

显然,这些无操作将使您的代码变大,这可能会导致更多指令缓存提取(这可能会严重影响非常紧凑的内部循环的性能 - 但这些更可能一开始就停止),但应该'没有任何其他不良影响。

我可以向有此类问题的任何人提供的最佳建议是尝试不同的设置并通过分析器运行代码,看看您是否会得到明显不同的结果。

【讨论】:

    【解决方案2】:

    1.如果你想优化代码使用发布版本,如果你使用发布版本然后Maximum speed(/O2)选项默认开启,相当于Favor fast Code(/Ot) 2.现在,如果您将 Favor size 或 speed 选项更改为偏爱小代码(/Os)(默认为“Neither”),您可能会看到可执行文件大小发生巨大变化。

    这可能有助于https://msdn.microsoft.com/en-us/library/8f8h5cxt(v=vs.90).aspx

    【讨论】:

      猜你喜欢
      • 2013-09-16
      • 1970-01-01
      • 1970-01-01
      • 2011-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多