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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

RyuJIT的华丽转身

發(fā)布時(shí)間:2023/12/4 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RyuJIT的华丽转身 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  RyuJIT是作為.NET即時(shí)編譯器的代號(hào)稱謂,它是.NET運(yùn)行時(shí)的基本組件之一。與此相反的是,Roslyn作為C#編譯器,其編譯C#代碼成為IL字節(jié)碼。然后,其再將IL字節(jié)碼編譯成相對(duì)于多種處理器的機(jī)器碼。

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

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

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

CLR via C#(第4版)

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

當(dāng)當(dāng) 廣告 購(gòu)買


  在近5年前,RyuJIT的x64版本作為社區(qū)技術(shù)預(yù)覽版展示給世界。這在當(dāng)時(shí)是不尋常的。我們?yōu)槿藗兲峁┝硕嗄甑母?#xff0c;讓人們可以嘗試,并在我們發(fā)布產(chǎn)品之前給我們反饋。RyuJIT的x64系列是隨.NET Framework 4.6發(fā)布的,它取代了3年前的JIT64,對(duì)于現(xiàn)在而言,它是一個(gè)遺留的代碼庫(kù)。

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

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

  RyuJIT對(duì)于ARM64架構(gòu)的支持,在.NET Core 2.1中近乎為預(yù)覽版程度,此支持是在RyuJIT架構(gòu)實(shí)現(xiàn)之初就進(jìn)行構(gòu)建的。實(shí)際上,在過去的4年中,我們一直致力RyuJIT支持ARM64的相關(guān)工作,而這項(xiàng)工作最近又被高通的貢獻(xiàn)者們所做的重要工作推進(jìn)了。

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

  1)多代碼生成目標(biāo)(指令集和操作系統(tǒng));

  2)改進(jìn)優(yōu)化;

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

  4)開放、靈活和健壯的設(shè)計(jì)與實(shí)現(xiàn);

  我們相信新的RyuJIT編譯器架構(gòu)比(現(xiàn)在已刪除)傳統(tǒng)的代碼生成器實(shí)現(xiàn)這些目標(biāo)有很大的改進(jìn)。

  最近,我們?cè)赗yuJIT代碼生成器中,投入了新的代碼生成技術(shù)。例如,SIMD支持,特定于硬件內(nèi)部的體系結(jié)構(gòu),以及對(duì)Linux軟件約定的支持。

  到達(dá)這一點(diǎn)是非常令人滿意的,我們已經(jīng)可以看到,刪除所有這些舊的代碼將使我們?cè)谇斑M(jìn)的過程中更加靈活。

  感謝所有為這一切長(zhǎng)期努力做出貢獻(xiàn)的人!

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

.NET社區(qū)新聞,深度好文,歡迎訪問公眾號(hào)文章匯總 http://www.csharpkit.com

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。