.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目标平台的可能性,但是,到目前为止,微软还没有正式答复。
\\