概述
- 吞吐量和最短停頓時間本來就互相矛盾巩割,Parallel Old追求的是吞吐量扩劝,CMS追求的是STW的最短缺菌,而G1通過把堆分成多個相對獨立的Region塊薇溃,并行的進(jìn)行選擇性的回收盒让,在滿足容忍的最大停頓的前提下梅肤,實現(xiàn)最大化的吞吐量,并且自動調(diào)整各個區(qū)塊的大小邑茄,最終實現(xiàn)一個兩者兼顧的回收器姨蝴。
G1中的年輕代,可以說明一下幾點:
- YGC觸發(fā)的條件是Eden區(qū)滿了(Eden可能是幾個Region)
- Survivor區(qū)不分S0和S1肺缕,可以認(rèn)為所有的空白塊都是S1左医,因為YGC和MajorGC都是采用復(fù)制算法,都是復(fù)制到一個空白的內(nèi)存塊當(dāng)中同木。
- 年輕代垃圾回收使用多線程并行進(jìn)行浮梢,需要STW
- 年輕代內(nèi)存由一組非連續(xù)的區(qū)域組成,而且Eden彤路、S區(qū)的大小是動態(tài)調(diào)整的
- 存活對象被拷貝到新的幸存區(qū)或者年老代區(qū)域(超過存活ratio的對象進(jìn)入老年代)