码迷,mamicode.com
首页 > Windows程序 > 详细

C#编译器优化那点事

时间:2018-05-01 00:36:45      阅读:259      评论:0      收藏:0      [点我收藏+]

标签:-o   一个   tin   get   bug   debug   用户   unit   需要   

使用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自带)

C#编译器优化那点事

标签:-o   一个   tin   get   bug   debug   用户   unit   需要   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!