在 dotnet core 2.1 可以使用阶梯编译的方法,从 dotnet framework 开始,在代码的所有方法在第一次进入的时候就需要使用 JIT 进行编译为本机的代码。可以看到代码是在第一次访问时编译的,所以编译的速度就影响了软件的运行速度。

在 dotnet core 2.1 使用的阶梯编译就是为了解决软件启动的问题



什么是阶梯编译

在软件启动的过程,可以认为几乎所有的方法都需要进行编译,在 Roslyn 有不同的方式编译,一个是快速编译,使用快速编译的方式会让代码运行速度比较慢。而另一个方式是优化编译,这个编译方式的编译速度比较慢,但是代码运行比较快。

现在在 dotnet core 2.1 就可以使用阶梯编译,在第一次遇到一个函数时就进行快速编译,而之后发现这个方法会频繁访问,就在另一个线程对这个方法进行优化编译,在编译完成再替换原来的入口。这样就可以做到在软件启动的过程使用的是快速编译的方法,通过快速编译的方法提高软件启动的速度,而在方法频繁访问的时候再重新使用优化编译,提高代码运行速度

如何打开

最简单的方法是在项目文件添加属性,当然要求先升级一下 dotnet core 2.1 的 sdk 可以到 dotnet sdk 2.1.300 winx64-CSDN下载

打开 xx.csproj 这里的 xx 就是项目的文件,当然如果看到这个博客,相信大家也知道这是哪个文件。

在这个文件的 PropertyGroup 添加 <TieredCompilation>true</TieredCompilation> 就可以打开,请看下面代码,如果看不到代码,请点击.NET Core Project File with Tiered Compilation Enabled

因为这个编译是在软件运行的时候使用 JIT 编译的,所以即使软件已经生成也可以通过configProperties打开,请看例子

  {
+ "runtimeOptions":
+ {
+ "configProperties":
+ {
+ "System.Runtime.TieredCompilation": true
+ }
+ },
"framework":
{
...
}
}

如果不想修改文件可以添加环境变量COMPlus_TieredCompilation=1打开,具体请看tiered compilation demo

Tiered Compilation Preview in .NET Core 2.1



我搭建了自己的博客 https://lindexi.gitee.io/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新

如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入


本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

最新文章

  1. 疑难杂症——EF+Automapper引发的查询效率问题解析
  2. windows下打包react-native应用程序
  3. Jmeter组件3. HTTP Cookie Manager
  4. QQ好友列表向左滑动出现置顶、删除--第三方开源--SwipeMenuListView
  5. TCP-心跳
  6. bzoj1875: [SDOI2009]HH去散步
  7. Android问题-selection contains a component,button7,introduced in an ancestor and cannot be deleted.
  8. 【44】将与参数无关的代码抽离templates
  9. CentOS 6.6下PXE+Kickstart无人值守安装操作系统
  10. Java学习之Java实现CallBack功能
  11. .net mvc笔记4_依赖注入
  12. ios 安装OpenFire
  13. let、var、const声明的区别
  14. python学习:函数传参数
  15. 下载文件downloadFile
  16. Hybrid APP之Native和H5页面交互原理
  17. Java语法细节 - synchronized和volatile
  18. 测试那些事儿—selenium IDE 自动化测试
  19. 视频剪辑软件调研:Adobe Premiere、会声会影、抖音短视频
  20. WINDOWS下nginx实现本地支持的图片服务器反向代理

热门文章

  1. WordPress使用自定义文章类型实现任意模板的方法和怎么做邮件回复
  2. JQuery--关系选择器
  3. R语言因子
  4. 【OI】快读
  5. C++之以分隔符的形式获取字符串
  6. 构造器 构造方法 constructor
  7. BZOJ4241历史研究题解
  8. 闲鱼Flutter&FaaS云端一体化架构
  9. TZOJ 4359: Partition the beans (二分)
  10. 部署zabbix3.2.7,升级到3.4、proxy部署