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

问题描述 投票:0回答:3

在 Visual Studio 2008 中,有一个选项“优化代码”可能对应于 /optimize 选项。它永远不会启用,即使在“发布”模式下也是如此。

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

c# visual-studio
3个回答
9
投票

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


7
投票

C#3 中的代码优化已经相当不错 - 它进行了许多巧妙的性能调整,这些调整在 IL 中对代码的更改比您预期的要多得多。

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

正如 @Brian Rasmussen 已经说过的 (+1) - 你希望它关闭用于调试,打开用于发布。


3
投票

为了明确这一点,优化会内联函数并消除一些变量。在调试优化代码时,您不会像平常一样从 IDE 获得太多帮助,因为某些代码实际上已不存在。因此,为了进行调试,请将 if 关闭(默认)。

在像 C++ 这样的语言中,优化有时(经常)会产生需要考虑的严重副作用。据我所知,C# 不是或几乎不是这种情况,所以从代码的正确性来看,优化与否可能并不重要。

© www.soinside.com 2019 - 2024. All rights reserved.