C#编译器-使用';优化代码';国旗打开了吗?
我计划深入了解用C#编写的.NET系统的继承用法。我想分析中间语言代码而不是C#代码,以便能够同时查看编译后的代码。当启用optimize code标志时,是否有关于C#编译器可以执行哪些优化的信息 我正在分析与继承图相关的调用行为(例如,使用多态性、从基类重用方法等) 互联网上的大多数问题和资源都说“小优化”和其他模糊的东西。我需要特别了解在为发布模式编译时可能发生的语义变化。我对代码的性能不感兴趣 例如,Scott Hanselman在该方法内联中的帖子将在发布模式下出现。但这只是一个例子。这意味着没有回答我的问题。 Eric Lippert(C#编译器团队的前首席开发人员)在他的博客上回答了这个问题。以下是一些评论:C#编译器-使用';优化代码';国旗打开了吗?,c#,optimization,compiler-construction,C#,Optimization,Compiler Construction,我计划深入了解用C#编写的.NET系统的继承用法。我想分析中间语言代码而不是C#代码,以便能够同时查看编译后的代码。当启用optimize code标志时,是否有关于C#编译器可以执行哪些优化的信息 我正在分析与继承图相关的调用行为(例如,使用多态性、从基类重用方法等) 互联网上的大多数问题和资源都说“小优化”和其他模糊的东西。我需要特别了解在为发布模式编译时可能发生的语义变化。我对代码的性能不感兴趣 例如,Scott Hanselman在该方法内联中的帖子将在发布模式下出现。但这只是一个例子。
- 消除死代码(从未到达的分支,总是返回true的检查,…)
- nullcheck优化
- 删除间歇调用(
被重写为A(B(C(D)))
)李>A(D)
- 双回电话
整个博客有更多的例子,如果你想知道这一点,我敦促你阅读。可能有助于详细说明你对此感兴趣的原因,例如,你是否关心性能?这有帮助吗@吉姆,是的,谢谢你,我知道那件事。但我想知道是否有更详细的来源。