C#编译器优化那点事

时间:2022-03-07 02:06:20

使用C#编写措施,给最终用户的措施,是需要使用release配置的,而release配置和debug配置,有一个关键区别,就是release的编译器优化默认是启用的。
优化代码开关即optimize开关,和debug开关一起,有以下几种组合。
| 编译器开关设置 |C#IL代码质量 | JIT本地代码质量 |
| ------------- |:-------------:| -----:|
| /optimize- /debug-(默认) | 未优化 | 有优化 |
| /optimize- /debug(+/full/pdbonly) | 未优化 | 未优化 |
| /optimize+/debug(-/+/full/pdbonly) | 有优化 | 有优化 |

?
在Visual Sutdio中新建一个C#项目时,
项目的“调试”(Debug)配置的是/optimize-和/debug:full开关,
而“颁布”(Release)配置指定的是/optimize+和/debug:pdbonly开关

optimize-/+决定了编译器是否优化代码,optimize-就是不优化了,但是凡是,,有一些根基的“优化”事情,无论是否指定optimize+,城市执行。

optimize- and optimize+

该项成果主要用于动态语义分析,辅佐我们更好地编写代码。

常量计算

简单分支查抄

optimize+ only

.NET的JIT机制,主要优化在JIT中完成,optimize做一点简单的事情。

Tools:
Visual studio 2017 community targeting .net core 2.0
IL DASM(vs自带)

标签:

原文地点:https://www.cnblogs.com/podolski/p/8975340.html