新聞中心
在 2020 年,JetBrains 的 Kotlin 團(tuán)隊(duì)曾發(fā)布了重新設(shè)計(jì) Kotlin/Native 中內(nèi)存管理方法的計(jì)劃?,F(xiàn)如今,該團(tuán)隊(duì)則對(duì)其進(jìn)展進(jìn)行了更新,并分享了一些關(guān)于內(nèi)存管理設(shè)計(jì)的細(xì)節(jié)。此外,官方透露,他們計(jì)劃在 2021 年夏季結(jié)束前提供一個(gè)開發(fā)預(yù)覽。

成都創(chuàng)新互聯(lián)公司企業(yè)建站,10年網(wǎng)站建設(shè)經(jīng)驗(yàn),專注于網(wǎng)站建設(shè)技術(shù),精于網(wǎng)頁設(shè)計(jì),有多年建站和網(wǎng)站代運(yùn)營(yíng)經(jīng)驗(yàn),設(shè)計(jì)師為客戶打造網(wǎng)絡(luò)企業(yè)風(fēng)格,提供周到的建站售前咨詢和貼心的售后服務(wù)。對(duì)于網(wǎng)站制作、網(wǎng)站設(shè)計(jì)中不同領(lǐng)域進(jìn)行深入了解和探索,創(chuàng)新互聯(lián)在網(wǎng)站建設(shè)中充分了解客戶行業(yè)的需求,以靈動(dòng)的思維在網(wǎng)頁中充分展現(xiàn),通過對(duì)客戶行業(yè)精準(zhǔn)市場(chǎng)調(diào)研,為客戶提供的解決方案。
根據(jù) JetBrains 的說法,最初的 Kotlin/Native 自動(dòng)內(nèi)存管理器使用了一個(gè)延遲引用計(jì)數(shù)的垃圾收集器,主要原因是在于它的簡(jiǎn)單性。然而,現(xiàn)在這個(gè)早期的設(shè)計(jì)選擇已經(jīng)成為提高 Kotlin/Native 性能和開發(fā)者體驗(yàn)的障礙,因此該團(tuán)隊(duì)正在尋求改進(jìn)它。
博客內(nèi)容指出,現(xiàn)代追蹤式垃圾收集算法比引用計(jì)數(shù)式垃圾收集器更加靈活可調(diào),并且更容易適應(yīng)多線程應(yīng)用程序的需求。但是,所有追蹤式垃圾收集器都有一個(gè)共同的弱點(diǎn)--它們需要來自編程語言運(yùn)行時(shí)和編譯器的相當(dāng)復(fù)雜的基礎(chǔ)架構(gòu)。
目前,Kotlin 團(tuán)隊(duì)正在研究新的基礎(chǔ)架構(gòu)。并透露,他們的第一個(gè)任務(wù)是確定 roots--內(nèi)存中所有可以存儲(chǔ)對(duì)動(dòng)態(tài)分配內(nèi)存的引用的位置。“這將使我們能夠開始追蹤一個(gè)對(duì)象圖?!?/p>
同時(shí),其還需要一個(gè)特殊的基礎(chǔ)架構(gòu)來實(shí)現(xiàn)并發(fā)垃圾回收算法,以避免阻塞應(yīng)用程序的關(guān)鍵線程?!昂慰?因?yàn)槲覀儓F(tuán)隊(duì)的主要使用場(chǎng)景是運(yùn)行 UI 應(yīng)用程序。UI 應(yīng)用有一個(gè) latency-sensitive 主線程,因此對(duì)于 Kotlin/Native 來說,僅支持 stop-the-world garbage collection 的設(shè)計(jì)是行不通的?!?/p>
因此,Kotlin 團(tuán)隊(duì)決定使用所謂的 safe points 方法,根據(jù)所有 roots 是否存儲(chǔ)在可預(yù)測(cè)的位置,將編譯后的代碼染成 safe 或 unsafe。這些位置對(duì)運(yùn)行時(shí)來說是已知的,這意味著垃圾回收可以與處于安全狀態(tài)的代碼并發(fā)運(yùn)行。
重新設(shè)計(jì)的另一個(gè)目的則是實(shí)現(xiàn)與平臺(tái)庫(kù)的無縫互操作性。這需要內(nèi)存管理器跟蹤泄漏到 non-managed world 的自動(dòng)管理內(nèi)存的句柄,還需要支持弱引用,以及在自動(dòng)管理的 Kotlin 對(duì)象有一個(gè)附加的平臺(tái)特定對(duì)象的情況下運(yùn)行額外的 deallocation code。
Kotlin 團(tuán)隊(duì)表示,其計(jì)劃實(shí)現(xiàn)一種生產(chǎn)就緒的垃圾回收實(shí)現(xiàn),支持線程之間無障礙地共享對(duì)象并滿足所有其他設(shè)計(jì)目標(biāo)。在未來,還可能會(huì)有一些受支持的垃圾收集算法,且這些算法都是針對(duì)不同的用例進(jìn)行了優(yōu)化。
原有的 Kotlin/Native 內(nèi)存管理方案將繼續(xù)受到支持,以簡(jiǎn)化現(xiàn)有應(yīng)用程序的遷移。因此,開發(fā)人員在構(gòu)建 Kotlin/Native 應(yīng)用程序時(shí),將能夠選擇垃圾回收實(shí)現(xiàn)。
本文轉(zhuǎn)自O(shè)SCHINA
本文標(biāo)題:JetBrains 旨在通過更好的垃圾回收機(jī)制來改善 Kotlin/Native
本文地址:https://www.oschina.net/news/143144/kotlin-native-memory-management-update
本文題目:JetBrains旨在通過更好的垃圾回收機(jī)制來改善Kotlin/Native
文章URL:http://m.fisionsoft.com.cn/article/dhicdco.html


咨詢
建站咨詢
