.NET Core CLR团队宣布,他们的.NET Core平台现在已经是完全基于其下一代即时编译器RyuJIT。有人可能不知道,在.NET Core中,编译器(Roslyn)会把C#代码编译成CIL(公共中间语言)字节码。接下来,RyuJIT会把CIL字节码编译成目标体系结构的机器码。其结果是,与遗留系统相比,RyuJIT支持的所有CPU体系结构(x86、x64、ARM32和ARM64)现在都可以从RyuJIT提供的性能和高效率中受益。

RyuJIT开发最早公开是在2013年9月,通过一次社区预览。RyuJIT的第一个生产版本是面向x64体系结构的,于2015年7月作为.NET Framework 4.6的一部分发布。然后,又依次引入了x86、ARM32支持。据来自微软的Bruce Forstall介绍,ARM64在.NET Core 2.1时“已经接近预览品质”,之所以没有明确说明,是因为那会让人觉得.NET Core 2.2会包含这种体系结构。Forstall指出,为了推进对ARM64平台的支持,Qualcomm做了大量的贡献。

RyuJIT对于ARM64架构的支持,在.NET Core 2.1中近乎为预览版程度,此支持是在RyuJIT架构实现之初就进行构建的。实际上,在过去的4年中,我们一直致力RyuJIT支持ARM64的相关工作,而这项工作最近又被高通的贡献者们所做的重要工作推进了。

在以x64为目标平台时,现行.NET Framework的用户也可以从RyuJIT受益,而针对x32平台生成的代码将继续使用遗留的编译器JIT32。.NET Core 2.1用户已经可以在x86、x64及ARM32平台上利用RyuJIT。到达这一点是非常令人满意的,我们已经可以看到,删除所有这些旧的代码将使我们在前进的过程中更加灵活。

我们相信新的RyuJIT编译器架构比(现在已删除)传统的代码生成器实现这些目标有很大的改进。Forstall指出,随着这项工作的完成,RyuJIT的未来计划包括增加SIMD支持、支持特定体系结构硬件的内联函数以及“支持Linux软件约定”。他们还希望继续改进RyuJIT所生成代码的总体质量。开发人员的反应总体上是积极的;有人对RyuJIT的前景提了一个有趣的问题,就是将来增加WebASM目标平台的可能性,但是,到目前为止,微软还没有正式答复。

相关文章:

原文地址:http://www.infoq.com/cn/news/2018/06/net-core-moves-RyuJIT

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

.NET Core完成向RyuJIT的迁移相关推荐

  1. 【复杂系统迁移 .NET Core平台系列】之迁移项目工程

    源宝导读:微软跨平台技术框架-.NET Core已经日趋成熟,已经具备了支撑大型系统稳定运行的条件.本文将介绍明源云ERP平台从.NET Framework向.NET Core迁移过程中的实践经验. ...

  2. asp.net core 2.1 Mysql 数据库迁移,遇坑记录

    首先来一段错误 immodeMacBook-Pro:tz.efcontext immo$ dotnet ef database update Unable to create an object of ...

  3. EF Core Model更新迁移

    EF Core 迁移 感觉就是以前EF Code First的自动同步数据库功能 内容:在你新增.更新TableModel后,如何自动化的更新DB中的真实Table.以及对这些更改进行一个版本控制. ...

  4. 【复杂系统迁移 .NET Core平台系列】之调度服务改造

    源宝导读:微软跨平台技术框架-.NET Core已经日趋成熟,已经具备了支撑大型系统稳定运行的条件.本文将介绍明源云ERP平台从.NET Framework向.NET Core迁移过程中的实践经验. ...

  5. 【复杂系统迁移 .NET Core平台系列】之认证和授权

    源宝导读:微软跨平台技术框架-.NET Core已经日趋成熟,已经具备了支撑大型系统稳定运行的条件.本文将介绍明源云ERP平台从.NET Framework向.NET Core迁移过程中的实践经验. ...

  6. 【复杂系统迁移 .NET Core平台系列】之静态文件

    源宝导读:微软跨平台技术框架-.NET Core已经日趋成熟,已经具备了支撑大型系统稳定运行的条件.本文将介绍明源云ERP平台从.NET Framework向.NET Core迁移过程中的实践经验. ...

  7. 【复杂系统迁移 .NET Core平台系列】之界面层

    源宝导读:微软跨平台技术框架-.NET Core已经日趋成熟,已经具备了支撑大型系统稳定运行的条件.本文将介绍明源云ERP平台从.NET Framework向.NET Core迁移过程中的实践经验. ...

  8. .NET项目迁移到.NET Core操作指南

    这篇文章,汇集了大量优秀作者写的关于".NET迁移到.NET Core"资料文章以及微软官方教程文档.是我在迁移公司框架项目到.NET Core和.NET Standard时遇到的 ...

  9. ASP.NET MVC应用迁移到ASP.NET Core及其异同简介

    ASP.NET Core是微软新推出支持跨平台.高性能.开源的开发框架,相比起原有的ASP.NET来说,ASP.NET Core更适合开发现代应用程序,如跨平台.Dorker的支持.集成现代前端开发框 ...

最新文章

  1. RHEL6入门系列之九,常用命令2
  2. 人工智能企业自动化的关键现状和战略影响
  3. 英文句子改写在线软件_试完这些英文论文写作辅助神器,你会发现新大陆der~...
  4. 校验用户手机号是否合法
  5. DOS常用网络相关命令
  6. mysql 附加数据库文件_mysql附加数据库文件
  7. 进程间通信之共享内存
  8. 将一个数组里面的奇数全部排在前面,偶数排在后面
  9. BAT研发Java面试36题总结:Spring+Redis+Docker+Dubbo
  10. 沉淀再出发:关于java中的AQS理解
  11. J2EE开发工作中遇到的异常问题及解决方法总结
  12. C语言—预定义宏调试__LINE__、__func__
  13. iTextSharp 生成pdf Form 实例
  14. 我想加入阿里,我该怎么做?
  15. vb入门教程 经验分享
  16. 等保测评--网络安全等级保护工作流程
  17. Google SEO和SEM的不同之处?
  18. 当攀藤 PM2.5 传感器遇上 RT-Thread(国产实时线程操作系统内核)(转载)
  19. python里的英文歌叫什么_Python告诉你:从《入海》到《消愁》毛不易的歌里都在唱些什么?...
  20. linux audacity,Audacity使用教程 Audacity怎么用

热门文章

  1. MySQL5.5多实例编译安装——mysqld_multi
  2. python学习笔记 --- 随机数进阶
  3. 远程连接mysql速度慢的解决方法
  4. 如何像Uber一样给工程师派单,解放外包生产力?
  5. Facebook应用Moments使用C++实现跨平台代码共享
  6. TinyUI组件开发示例
  7. TCP连接——三次握手和四次断开
  8. cocos2d-x 实现跨平台的目录遍历
  9. iPhone比小米贵3000,贵在哪里?
  10. 如何添加自定义icon