代码之家  ›  专栏  ›  技术社区  ›  AngryHacker

Visual Studio中的“优化代码”复选框。它到底是做什么的?

  •  17
  • AngryHacker  · 技术社区  · 15 年前

    Visual Studio 2005/2008中项目属性的“生成”选项卡包含“优化代码”。

    文件上说它“…启用或禁用编译器执行的优化以使输出文件更小、更快和更高效。”

    1. 我的问题是我为什么不穿呢?
    2. 为什么不默认打开?
    3. 它实际上是做什么的?
    3 回复  |  直到 10 年前
        1
  •  25
  •   LorenVS    15 年前
    1. 您不希望在构建调试时启用它,因为它会使代码更难执行,因为实际运行的代码可能无法正确反映您所写的内容(因为某些行将被优化)。

    2. 由于上述原因,在默认情况下,调试版本不启用它,在默认情况下,应在发布版本上启用它。

    3. 它执行优化,例如动态内联和删除不需要的局部变量。任何可以在编译时决定的优化。

        2
  •  3
  •   Michael    15 年前

    维基百科有一篇关于 compiler optimization 这涵盖了许多基本的优化类型。

    您不想创建优化的调试版本。优化会影响代码的可调试性-一些代码行可能被删除,一些来自函数不同部分或不同函数的代码行可能被合并在一起,局部变量可能被折叠在一起,等等。这意味着,当调试当前行时,由于代码被重新组织和检查局部变量,可能会出现随机跳转的情况,这可能会非常误导您-当不再需要局部变量时,可以重新使用该局部变量的空间,并且似乎会产生令人不快的结果。

        3
  •  1
  •   Community Michael Schmitz    7 年前

    看看答案 What is /optimize C# compiler key intended for? 他们回答你的问题(尤其是诺尔多林的回答)。