Visual Studio中的"优化代码"复选框.它到底是做什么用的?

Ang*_*ker 19 visual-studio

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

该文档声明它"......启用或禁用编译器执行的优化,以使您的输出文件更小,更快,更高效."

  1. 我的问题是为什么我不应该这样做?
  2. 为什么默认情况下不启用?
  3. 它实际上做了什么?

Lor*_*nVS 26

  1. 您不希望这样做是为了构建调试,因为它使得逐步执行代码更加困难,因为正在运行的实际代码可能无法正确反映您所编写的内容(因为某些行将被优化)

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

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