为什么我不应该使用/ optimize开关来编译我的C#代码?

时间:2009-01-23 11:28:46

标签: visual-studio compiler-construction

在Visual Studio 2008中,有一个选项“Optimize Code”可能与/ optimize选项对应。它永远不会启用,即使在“释放”模式下也是如此。

为什么我不希望始终启用此选项?

3 个答案:

答案 0 :(得分:9)

发布版本默认为启用(可能是您更改了版本构建的设置?)。将其关闭以使调试更容易。对于发布代码,请将其打开。

答案 1 :(得分:7)

代码优化在C#3中已经相当不错 - 它做了许多聪明的性能调整,在IL中比你想象的更多地改变代码。

有些混淆工具(以及其他一些IL工具,如ILMerge)有时可以通过优化来破坏程序集。您使用的IL工具越多,您就越有可能遇到严重的优化问题。

同样@Brian Rasmussen已经说过(+1) - 你希望它能够在发布时进行调试。

答案 2 :(得分:3)

为了明确这一点,优化会内联函数并消除一些变量。在调试优化代码时,IDE不会像往常那样获得尽可能多的帮助,因为某些代码实际上不再存在。因此,对于调试,请关闭(默认)。

在像C ++这样的语言中,有时候(通常)会产生一些需要考虑的重要副作用。据我所知,这不是或几乎不是C#的情况,所以从代码的正确性来看,如果你优化也没关系。