JetBrains通過(guò)更好的垃圾回收機(jī)制來(lái)改善Kotlin/Native

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

創(chuàng)新互聯(lián)專(zhuān)注于平樂(lè)企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城開(kāi)發(fā)。平樂(lè)網(wǎng)站建設(shè)公司,為平樂(lè)等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站設(shè)計(jì),專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)

在 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è)開(kāi)發(fā)預(yù)覽。

根據(jù) JetBrains 的說(shuō)法,最初的 Kotlin/Native  自動(dòng)內(nèi)存管理器使用了一個(gè)延遲引用計(jì)數(shù)的垃圾收集器,主要原因是在于它的簡(jiǎn)單性。然而,現(xiàn)在這個(gè)早期的設(shè)計(jì)選擇已經(jīng)成為提高 Kotlin/Native  性能和開(kāi)發(fā)者體驗(yàn)的障礙,因此該團(tuán)隊(duì)正在尋求改進(jìn)它。

博客內(nèi)容指出,現(xiàn)代追蹤式垃圾收集算法比引用計(jì)數(shù)式垃圾收集器更加靈活可調(diào),并且更容易適應(yīng)多線(xiàn)程應(yīng)用程序的需求。但是,所有追蹤式垃圾收集器都有一個(gè)共同的弱點(diǎn)--它們需要來(lái)自編程語(yǔ)言運(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)存的引用的位置?!斑@將使我們能夠開(kāi)始追蹤一個(gè)對(duì)象圖?!?/p>

同時(shí),其還需要一個(gè)特殊的基礎(chǔ)架構(gòu)來(lái)實(shí)現(xiàn)并發(fā)垃圾回收算法,以避免阻塞應(yīng)用程序的關(guān)鍵線(xiàn)程?!昂慰?因?yàn)槲覀儓F(tuán)隊(duì)的主要使用場(chǎng)景是運(yùn)行 UI 應(yīng)用程序。UI  應(yīng)用有一個(gè) latency-sensitive 主線(xiàn)程,因此對(duì)于 Kotlin/Native 來(lái)說(shuō),僅支持 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í)來(lái)說(shuō)是已知的,這意味著垃圾回收可以與處于安全狀態(tài)的代碼并發(fā)運(yùn)行。

重新設(shè)計(jì)的另一個(gè)目的則是實(shí)現(xiàn)與平臺(tái)庫(kù)的無(wú)縫互操作性。這需要內(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),支持線(xiàn)程之間無(wú)障礙地共享對(duì)象并滿(mǎn)足所有其他設(shè)計(jì)目標(biāo)。在未來(lái),還可能會(huì)有一些受支持的垃圾收集算法,且這些算法都是針對(duì)不同的用例進(jìn)行了優(yōu)化。

原有的 Kotlin/Native 內(nèi)存管理方案將繼續(xù)受到支持,以簡(jiǎn)化現(xiàn)有應(yīng)用程序的遷移。因此,開(kāi)發(fā)人員在構(gòu)建 Kotlin/Native  應(yīng)用程序時(shí),將能夠選擇垃圾回收實(shí)現(xiàn)。

感謝各位的閱讀,以上就是“JetBrains通過(guò)更好的垃圾回收機(jī)制來(lái)改善Kotlin/Native”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)JetBrains通過(guò)更好的垃圾回收機(jī)制來(lái)改善Kotlin/Native這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

當(dāng)前文章:JetBrains通過(guò)更好的垃圾回收機(jī)制來(lái)改善Kotlin/Native
瀏覽路徑:http://bm7419.com/article10/iipjdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站建設(shè)、動(dòng)態(tài)網(wǎng)站、靜態(tài)網(wǎng)站、響應(yīng)式網(wǎng)站用戶(hù)體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)