.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做了大量的貢獻。
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目標平臺的可能性,但是,到目前為止,微軟還沒有正式答復。
相關文章:?
RyuJIT的華麗轉身
.NET 4.6的RyuJIT編譯器中又發現兩個嚴重的Bug
CoreCLR源碼探索(七) JIT的工作原理(入門篇)
CoreCLR源碼探索(八) JIT的工作原理(詳解篇)
.NET Core 已經實現了PHP JIT,現在PHP是.NET上的一門開發語言
深入探索.NET框架內部了解CLR如何創建運行時對象
原文地址:http://www.infoq.com/cn/news/2018/06/net-core-moves-RyuJIT
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結
以上是生活随笔為你收集整理的.NET Core完成向RyuJIT的迁移的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【开源】OSharpNS,轻量级.net
- 下一篇: COMCMS_CORE 起步篇,如何运行