C# 编译器 /optimize 命令行选项会影响 JITter 吗?

Posted

技术标签:

【中文标题】C# 编译器 /optimize 命令行选项会影响 JITter 吗?【英文标题】:Does C# compiler /optimize command line option affect JITter? 【发布时间】:2012-04-04 01:13:11 【问题描述】:

我一直在阅读 Eric Lippert 的 article 关于 C# 编译器的 /optimize 命令行选项。这篇文章描述了编译器执行了什么样的优化。但是,我仍不清楚此选项是否也会影响 JIT 优化。并非不可想象,此选项会使编译器发出一些元数据,抖动可以理解以更改“优化模式”。如果此选项确实影响 JITter,是否有任何参考可以确认或以其他方式?

【问题讨论】:

The JIT compiler doesn't optimize when you're debugging. 我不确定 /optimize 是否会影响它。 【参考方案1】:

如果此选项确实影响 JITter,是否有任何参考可以确认或以其他方式?

根据 Jeffrey Richter 在他的 CLR via C# book, 3rd edition(第 1 章,第 13 页)中的说法,确实如此。 /optimize+ 开关将优化 C# IL 代码以及 JIT 编译器生成的本机代码。至于 如何 它实际上是如何做到的,我不确定。我的疯狂猜测是它可能与CorDebugJITCompilerFlags 枚举有关。

【讨论】:

以上是关于C# 编译器 /optimize 命令行选项会影响 JITter 吗?的主要内容,如果未能解决你的问题,请参考以下文章

gcc的使用简介与命令行参数说明

gdb optimized out

Linux环境下编写C程序

在 C# 中处理命令行选项的最佳方法 [重复]

在 C# 中解析命令行参数/选项

在 C# 中解析命令行选项 [重复]