中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JetBrains通過更好的垃圾回收機制來改善Kotlin/Native

發布時間:2021-06-26 13:50:31 來源:億速云 閱讀:278 作者:chen 欄目:web開發

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

在 2020 年,JetBrains 的 Kotlin 團隊曾發布了重新設計 Kotlin/Native  中內存管理方法的計劃。現如今,該團隊則對其進展進行了更新,并分享了一些關于內存管理設計的細節。此外,官方透露,他們計劃在 2021  年夏季結束前提供一個開發預覽。

根據 JetBrains 的說法,最初的 Kotlin/Native  自動內存管理器使用了一個延遲引用計數的垃圾收集器,主要原因是在于它的簡單性。然而,現在這個早期的設計選擇已經成為提高 Kotlin/Native  性能和開發者體驗的障礙,因此該團隊正在尋求改進它。

博客內容指出,現代追蹤式垃圾收集算法比引用計數式垃圾收集器更加靈活可調,并且更容易適應多線程應用程序的需求。但是,所有追蹤式垃圾收集器都有一個共同的弱點--它們需要來自編程語言運行時和編譯器的相當復雜的基礎架構。

目前,Kotlin 團隊正在研究新的基礎架構。并透露,他們的第一個任務是確定  roots--內存中所有可以存儲對動態分配內存的引用的位置。“這將使我們能夠開始追蹤一個對象圖。”

同時,其還需要一個特殊的基礎架構來實現并發垃圾回收算法,以避免阻塞應用程序的關鍵線程。“何苦?因為我們團隊的主要使用場景是運行 UI 應用程序。UI  應用有一個 latency-sensitive 主線程,因此對于 Kotlin/Native 來說,僅支持 stop-the-world garbage  collection 的設計是行不通的。”

因此,Kotlin 團隊決定使用所謂的 safe points 方法,根據所有 roots 是否存儲在可預測的位置,將編譯后的代碼染成 safe 或  unsafe。這些位置對運行時來說是已知的,這意味著垃圾回收可以與處于安全狀態的代碼并發運行。

重新設計的另一個目的則是實現與平臺庫的無縫互操作性。這需要內存管理器跟蹤泄漏到 non-managed world  的自動管理內存的句柄,還需要支持弱引用,以及在自動管理的 Kotlin 對象有一個附加的平臺特定對象的情況下運行額外的 deallocation  code。

Kotlin  團隊表示,其計劃實現一種生產就緒的垃圾回收實現,支持線程之間無障礙地共享對象并滿足所有其他設計目標。在未來,還可能會有一些受支持的垃圾收集算法,且這些算法都是針對不同的用例進行了優化。

原有的 Kotlin/Native 內存管理方案將繼續受到支持,以簡化現有應用程序的遷移。因此,開發人員在構建 Kotlin/Native  應用程序時,將能夠選擇垃圾回收實現。

感謝各位的閱讀,以上就是“JetBrains通過更好的垃圾回收機制來改善Kotlin/Native”的內容了,經過本文的學習后,相信大家對JetBrains通過更好的垃圾回收機制來改善Kotlin/Native這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

塔城市| 壤塘县| 白沙| 沈丘县| 潍坊市| 桦川县| 微博| 鹰潭市| 保定市| 延吉市| 溧阳市| 潼南县| 清徐县| 东安县| 石嘴山市| 通化市| 铅山县| 安岳县| 阿克陶县| 穆棱市| 南城县| 滨海县| 永泰县| 鄱阳县| 长泰县| 吉水县| 文水县| 卓尼县| 南丹县| 武夷山市| 青州市| 凌海市| 江川县| 宁武县| 张家港市| 万源市| 溧阳市| 雷山县| 教育| 灌云县| 琼结县|