這篇文章主要講解了“JetBrains通過更好的垃圾回收機制來改善Kotlin/Native”,文中的講解內(nèi)容簡單清晰,易于學(xué)習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習“JetBrains通過更好的垃圾回收機制來改善Kotlin/Native”吧!

創(chuàng)新互聯(lián)專注于平樂企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城開發(fā)。平樂網(wǎng)站建設(shè)公司,為平樂等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站設(shè)計,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
在 2020 年,JetBrains 的 Kotlin 團隊曾發(fā)布了重新設(shè)計 Kotlin/Native 中內(nèi)存管理方法的計劃。現(xiàn)如今,該團隊則對其進展進行了更新,并分享了一些關(guān)于內(nèi)存管理設(shè)計的細節(jié)。此外,官方透露,他們計劃在 2021 年夏季結(jié)束前提供一個開發(fā)預(yù)覽。
根據(jù) JetBrains 的說法,最初的 Kotlin/Native 自動內(nèi)存管理器使用了一個延遲引用計數(shù)的垃圾收集器,主要原因是在于它的簡單性。然而,現(xiàn)在這個早期的設(shè)計選擇已經(jīng)成為提高 Kotlin/Native 性能和開發(fā)者體驗的障礙,因此該團隊正在尋求改進它。
博客內(nèi)容指出,現(xiàn)代追蹤式垃圾收集算法比引用計數(shù)式垃圾收集器更加靈活可調(diào),并且更容易適應(yīng)多線程應(yīng)用程序的需求。但是,所有追蹤式垃圾收集器都有一個共同的弱點--它們需要來自編程語言運行時和編譯器的相當復(fù)雜的基礎(chǔ)架構(gòu)。
目前,Kotlin 團隊正在研究新的基礎(chǔ)架構(gòu)。并透露,他們的第一個任務(wù)是確定 roots--內(nèi)存中所有可以存儲對動態(tài)分配內(nèi)存的引用的位置。“這將使我們能夠開始追蹤一個對象圖。”
同時,其還需要一個特殊的基礎(chǔ)架構(gòu)來實現(xiàn)并發(fā)垃圾回收算法,以避免阻塞應(yīng)用程序的關(guān)鍵線程。“何苦?因為我們團隊的主要使用場景是運行 UI 應(yīng)用程序。UI 應(yīng)用有一個 latency-sensitive 主線程,因此對于 Kotlin/Native 來說,僅支持 stop-the-world garbage collection 的設(shè)計是行不通的。”
因此,Kotlin 團隊決定使用所謂的 safe points 方法,根據(jù)所有 roots 是否存儲在可預(yù)測的位置,將編譯后的代碼染成 safe 或 unsafe。這些位置對運行時來說是已知的,這意味著垃圾回收可以與處于安全狀態(tài)的代碼并發(fā)運行。
重新設(shè)計的另一個目的則是實現(xiàn)與平臺庫的無縫互操作性。這需要內(nèi)存管理器跟蹤泄漏到 non-managed world 的自動管理內(nèi)存的句柄,還需要支持弱引用,以及在自動管理的 Kotlin 對象有一個附加的平臺特定對象的情況下運行額外的 deallocation code。
Kotlin 團隊表示,其計劃實現(xiàn)一種生產(chǎn)就緒的垃圾回收實現(xiàn),支持線程之間無障礙地共享對象并滿足所有其他設(shè)計目標。在未來,還可能會有一些受支持的垃圾收集算法,且這些算法都是針對不同的用例進行了優(yōu)化。
原有的 Kotlin/Native 內(nèi)存管理方案將繼續(xù)受到支持,以簡化現(xiàn)有應(yīng)用程序的遷移。因此,開發(fā)人員在構(gòu)建 Kotlin/Native 應(yīng)用程序時,將能夠選擇垃圾回收實現(xiàn)。
感謝各位的閱讀,以上就是“JetBrains通過更好的垃圾回收機制來改善Kotlin/Native”的內(nèi)容了,經(jīng)過本文的學(xué)習后,相信大家對JetBrains通過更好的垃圾回收機制來改善Kotlin/Native這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
當前文章:JetBrains通過更好的垃圾回收機制來改善Kotlin/Native
瀏覽路徑:http://www.jbt999.com/article10/iipjdo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、移動網(wǎng)站建設(shè)、動態(tài)網(wǎng)站、靜態(tài)網(wǎng)站、響應(yīng)式網(wǎng)站、用戶體驗
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)