- JVM G1源碼分析和調(diào)優(yōu)
- 彭成寒
- 319字
- 2019-04-22 18:14:50
1.3.2 復(fù)制算法
復(fù)制算法的實現(xiàn)也有很多種,可以使用兩個分區(qū),也可以使用多個分區(qū)。使用兩個分區(qū)時內(nèi)存的利用率只有50%;使用多個分區(qū)(如3個分區(qū)),則可以提高內(nèi)存的使用率。我們這里演示把堆空間分為1個新生代(分為3個分區(qū):Eden、Survivor0、Survivor1)、1個老生代的收集過程。
普通對象創(chuàng)建的時候都是放在Eden區(qū),S0和S1分別是兩個存活區(qū)。第一次垃圾收集前S0和S1都為空,在垃圾收集后,Eden和S0里面的活躍對象(即可以通過根集合到達的對象)都放入了S1區(qū),如圖1-1所示。

圖1-1 復(fù)制算法第一次回收
回收后Mutator繼續(xù)運行并產(chǎn)生垃圾,在第二次運行前Eden和S1都有活躍對象,在垃圾收集后,Eden和S1里面的活躍對象(即可以通過根節(jié)點到達的對象)都被放入到S0區(qū),一直這樣循環(huán)收集,如圖1-2所示。

圖1-2 復(fù)制算法第二次回收
推薦閱讀
- Rake Task Management Essentials
- Programming ArcGIS 10.1 with Python Cookbook
- Learning DHTMLX Suite UI
- 飛槳PaddlePaddle深度學(xué)習(xí)實戰(zhàn)
- JavaCAPS基礎(chǔ)、應(yīng)用與案例
- 微服務(wù)架構(gòu)深度解析:原理、實踐與進階
- Java SE實踐教程
- 持續(xù)集成與持續(xù)交付實戰(zhàn):用Jenkins、Travis CI和CircleCI構(gòu)建和發(fā)布大規(guī)模高質(zhì)量軟件
- JavaScript+jQuery網(wǎng)頁特效設(shè)計任務(wù)驅(qū)動教程
- 網(wǎng)絡(luò)數(shù)據(jù)采集技術(shù):Java網(wǎng)絡(luò)爬蟲實戰(zhàn)
- Learning Bootstrap 4(Second Edition)
- Mastering PowerCLI
- 啊哈C語言!:邏輯的挑戰(zhàn)(修訂版)
- Flutter之旅
- PHP從入門到精通(微視頻精編版)