G1與CMS各自的使用場景及原理

qq_41634872發表於2020-11-19

G1適合8/16G以上的記憶體使用,原因在於G1rescan更快,清除垃圾時雖然是stop the world但是可控,CMS雖然是併發但是不可控,大塊記憶體要回收會影響到應用程式的效能。另外由於G1在清理垃圾時使用STW,所以可以採用標記整理演算法,沒有記憶體碎片問題

G1大體思路:
在這裡插入圖片描述
在併發標記時,物件引用的變動會增加一個barrier, 就有了變動的log集合,rescan時只需要掃描log集合即可。
CMS大體思路:
在這裡插入圖片描述

G1垃圾收集器的講解,RednaxelaFX

CMS垃圾收集器的講解

相關文章