【JVM】G1收集器

G1(Garbage First) 是一款面向服務端應用的垃圾收集器,也是當今收集器技術(shù)發(fā)展的最前沿的成果之一。

特征

1. 并行與并發(fā)

G1能充分利用多CPU、多核環(huán)境的優(yōu)勢,縮短GC停頓時間。

2. 分代收集

分代的概念在G1中保留,雖然G1不需要其他收集器配合就能獨立管理整個GC堆,但它能夠采用不同的方式處理新創(chuàng)建的對象和已經(jīng)存活了一段時間、熬過多次GC的舊對象,以獲取更好的收集效果。

3. 空間整合

G1從整體上看是基于”標記-整理“算法實現(xiàn)的收集器,從局部上(兩個Region之間)看是基于”復制“算法實現(xiàn)的,這意味著G1運作期間不會產(chǎn)生內(nèi)存空間碎片,收集后能提供規(guī)整的可用內(nèi)存。

4. 可預測的停頓

降低停頓時間是CMS和G1共同的關(guān)注點,但G1除了追求低停頓外,還能建立可預測的停頓時間模型:能讓使用者明確指定在長度為M毫秒的時間片段內(nèi),消耗在垃圾收集上的時間不得超過N毫秒。

可預測的停頓

G1之所以能夠建立可預測的時間停頓模型,是因為它可以有計劃地避免在整個Java堆中進行全區(qū)域的垃圾收集。
G1跟蹤各個Region里面的垃圾堆積的價值大小,在后臺維護一個優(yōu)先級列表,每次根據(jù)允許的收集時間,優(yōu)先回收價值最大的Region。

未完待續(xù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容