日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RyuJIT的华丽转身

發布時間:2023/12/4 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RyuJIT的华丽转身 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  RyuJIT是作為.NET即時編譯器的代號稱謂,它是.NET運行時的基本組件之一。與此相反的是,Roslyn作為C#編譯器,其編譯C#代碼成為IL字節碼。然后,其再將IL字節碼編譯成相對于多種處理器的機器碼。

  隨著最近對dotnet/coreclr #18064的合并,將生成組件的遺留代碼(來自較老的JIT實現)從RyuJIT的源碼中進行了移除。這個版本刪除了近5萬行代碼!現在,四種處理理體系結構(x86、x64、ARM32、ARM64)可完全基于RyuJIT架構。

  回顧一下關于RyuJIT短暫的歷史,以及我們是如何做到現在這樣的,是一件很有趣的事情。

  RyuJIT架構的設計開始于9年前,而著手實現開始于7年前。RyuJIT是現有的JIT32編譯器(它支持x86和ARM32)的進化版實現,并逐步用一個新的寄存器分配器和代碼生成器替換了編譯器的大部分“后端”,并入了許多新的和改進的“前端”優化組件。在向新的代碼生成體系結構過渡的過程中,我們將舊代碼與之結合。這樣做提供了好處,但是在測試和維護成本方面,以及開發人員需要處理由大量的分散的遺留代碼的困惑,這些都是非常昂貴的?,F在,由于RyuJIT在功能上優于遺留代碼,所以現在是刪除遺留代碼,簡化JIT代碼,以及著眼于未來的時候了。

CLR via C#(第4版)

作者:(美)李希特 著,周靖 譯

當當 廣告 購買


  在近5年前,RyuJIT的x64版本作為社區技術預覽版展示給世界。這在當時是不尋常的。我們為人們提供了多年的更新,讓人們可以嘗試,并在我們發布產品之前給我們反饋。RyuJIT的x64系列是隨.NET Framework 4.6發布的,它取代了3年前的JIT64,對于現在而言,它是一個遺留的代碼庫。

  在去年發布的.NET Core 2.0中,x86取代了JIT32。作為公共開發過程的一部分,我們宣布了JIT32的替換,并在.NET Core 2.0的發布聲明中分享了完成的工作。

  .NET Core 2.0作為包含支持ARM32架構的預覽版,使用了遺留后端代碼。截至去年12月,對于dotnet/coreclr #15134的合并,.NET Core 2.1版本正式支持了ARM32體系架構。這一變化也包括了三星的許多貢獻。

  RyuJIT對于ARM64架構的支持,在.NET Core 2.1中近乎為預覽版程度,此支持是在RyuJIT架構實現之初就進行構建的。實際上,在過去的4年中,我們一直致力RyuJIT支持ARM64的相關工作,而這項工作最近又被高通的貢獻者們所做的重要工作推進了。

  總的來說,RyuJIT的投入一直專注于發展代碼庫,以便更好地支持:

  1)多代碼生成目標(指令集和操作系統);

  2)改進優化;

  3)更好和更靈活的代碼生成;

  4)開放、靈活和健壯的設計與實現;

  我們相信新的RyuJIT編譯器架構比(現在已刪除)傳統的代碼生成器實現這些目標有很大的改進。

  最近,我們在RyuJIT代碼生成器中,投入了新的代碼生成技術。例如,SIMD支持,特定于硬件內部的體系結構,以及對Linux軟件約定的支持。

  到達這一點是非常令人滿意的,我們已經可以看到,刪除所有這些舊的代碼將使我們在前進的過程中更加靈活。

  感謝所有為這一切長期努力做出貢獻的人!

原文地址https://www.cnblogs.com/supersnowyao/p/9218740.html

.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com

總結

以上是生活随笔為你收集整理的RyuJIT的华丽转身的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。