垃圾收集器(五) G1收集器

2021-10-06 23:57:16 字數 389 閱讀 9757

初始標記,標記gc roots直接關聯的物件,新增tams標記(兩個指標),stw

併發標記,從gc roots沿著引用關係查詢,如果使用者執行緒同時修改了引用關係,新增satb標記;此時的新物件分配到tams標記之外的區域;併發。

最終標記:處理satb標記,stw

篩選**:按照**價值進行**;對於乙個region:將tams區域之外的物件和區域內存活的物件複製到新region後,整塊region清除,stw。

注:如果記憶體**的速度趕不上記憶體分配的速度, g1收集器也要被迫凍結使用者執行緒執行,導致full gc而產生長時間「stop the world」。

G1收集器和ZGC收集器

不要把垃圾收集器的功能看的太單一,除了 垃圾之外,記憶體的組織 分配 管理等操作也是垃圾收集器的工作。有的垃圾收集器選擇分代設計,有的選擇不分代。垃圾收集器的效能主要從三方面考慮 停頓時間 吞吐量和記憶體占用 對於第二點,這三種目標無法同時滿足,乙個垃圾 器基本只能滿足其中的一到兩點。比如這篇筆記中...

JVM垃圾收集器之CMS收集器

cms concurrent mark sweep 收集器是一種以獲取最短 停頓時間為目標的收集器。1 cms使用的演算法 cms使用的演算法為 標記 清除 演算法 2 執行過程4步驟 a 初始標記 cms initial mark b 併發標記 cms concurrent mark c 重新標記...

JVM的垃圾收集器

parnew收集器 parnew相比serial,則是較多的執行在server模式下的虛擬機器中首選的新生代收集器。而且還有乙個重要的原因,除了serial外,目前只有他能與cms收集器 jdk1.5推出,是hotspot第一款真正意義上的併發收集器 搭配工作。parnew可以使用 xx paral...