C#编译器优化那点事
2021-04-13 17:26
标签:-o 一个 tin get bug debug 用户 unit 需要 使用C#编写程序,给最终用户的程序,是需要使用release配置的,而release配置和debug配置,有一个关键区别,就是release的编译器优化默认是启用的。 ? optimize-/+决定了编译器是否优化代码,optimize-就是不优化了,但是通常,有一些基本的“优化”工作,无论是否指定optimize+,都会执行。 该项功能主要用于动态语义分析,帮助我们更好地编写代码。 .NET的JIT机制,主要优化在JIT中完成,optimize做一点简单的工作。 Tools: C#编译器优化那点事 标签:-o 一个 tin get bug debug 用户 unit 需要 原文地址:https://www.cnblogs.com/podolski/p/8975340.html
优化代码开关即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- and optimize+
optimize+ only
Visual studio 2017 community targeting .net core 2.0
IL DASM(vs自带)