.NET Core完成向RyuJIT的迁移

.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做了大量的贡献。

在以x64为目标平台时,现行.NET Framework的用户也可以从RyuJIT受益,而针对x32平台生成的代码将继续使用遗留的编译器JIT32。.NET Core 2.1用户已经可以在x86、x64及ARM32平台上利用RyuJIT。

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

查看英文原文:.NET Core Completes Move to RyuJIT

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址http://www.infoq.com/cn/news/2018/06/net-core-moves-RyuJIT
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券