1.四個特點:
- 并行與并發(fā)
G1能夠充分利用多CPU、多核環(huán)境下的硬件優(yōu)勢,使用多個CPU來縮短Stop-The-World停頓時間 - 分代收集
與其他收集器一樣碉就,分代概念在G1中依然得以保留。雖然G1可以不需要其他收集器配合就能獨立管理整個GC堆闷串,但它能夠采用不同的方式去處理新創(chuàng)建的對象和已經(jīng)存活了一段時間瓮钥、熬過多次GC的舊對象以獲取更好的收集效果。 - 空間整合
G1從整體來看時基于“標(biāo)記-整理”算法實現(xiàn)的收集器烹吵,從局部(兩個Region之間)上來看時基于“復(fù)制”算法實現(xiàn)的碉熄,這兩種算法都意味著G1運作期間不會產(chǎn)生內(nèi)存空間碎片,收集后能夠提供規(guī)整的可用內(nèi)存肋拔。這種特性有利于程序長時間運行锈津,分配大對象時不會因為無法找到連續(xù)的內(nèi)存空間而提前觸發(fā)下一次GC。 - 可預(yù)測的停頓
降低停頓時間是G1和CMS共同關(guān)注點凉蜂,但G1除了追求低停頓外琼梆,還能建立可預(yù)測的停頓時間模型,能讓使用者明確指定在一個長度為M毫秒的時間片段內(nèi)窿吩,消耗在垃圾收集上的時間不得超過N毫秒茎杂,這幾乎已經(jīng)是實時Java 的垃圾收集器的特征了。
??G1跟蹤每個Region里面面的垃圾堆積的價值大腥已恪(所獲得的空間大小以及回收所需時間的經(jīng)驗值)煌往,在后臺維護(hù)一個優(yōu)先列表,每次根據(jù)允許的收集時間轧邪,優(yōu)先回收價值最大的Region(這也就是Garbage First名稱的由來)