Visual Studio 2005/2008中“项目属性”的“构建”选项卡包含“优化代码”。
文档指出它“......启用或禁用编译器执行的优化,以使您的输出文件更小,更快,更高效。”
答案 0 :(得分:25)
您不希望这样做是为了构建调试,因为它使得逐步执行代码更加困难,因为正在运行的实际代码可能无法正确反映您所编写的内容(因为某些行将被优化)< / p>
由于上述原因,DEBUG版本默认不启用,默认情况下应在发布版本上启用
它执行优化,例如动态内联和删除不需要的局部变量。任何可以在编译时决定的优化。
答案 1 :(得分:3)
维基百科有一篇关于compiler optimization的文章,涵盖了许多基本类型的优化。
您不希望创建优化的调试版本。优化会影响代码的可调试性 - 可能会删除某些代码行,来自函数不同部分或不同函数的某些代码行可能会合并在一起,局部变量可能会折叠在一起,依此类推。这意味着当调试当前行时,由于代码被重新组织,可能会出现随机跳转,并且检查局部变量可能会产生误导 - 当不再需要本地空间时,可能会重复使用本地空间,并且看起来会产生错误的结果。
答案 2 :(得分:1)
看看What is /optimize C# compiler key intended for?的答案他们回答你的问题(特别是Noldorin的回答)。