
Serial Collector一样。
concurrent mark-sweep(CMS) collector,通常也被称为低延时收集器low-latency collector.
> 适用场景: 仅适用于老年代,新生代处理方式和Parallel Collector相同。
G1目标
G1 is planned as the long term replacement for the Concurrent Mark-Sweep Collector. 计划将G1作为CMS收集器的长久替代物。
它是为了平衡 延时和吞吐量之间的一种最优关系。
G1实现原理
基本属性
和CMS的相同点>=1/2 个区域空间的对象.超大对象有时候会被以下特殊方式处理: 
老年代空间 *占用* 达到某个阈值,即Heap初始化占用阈值。此时,G1将调度Initial Mark的Young-only收集(蓝色大球),而非常规的Young-only(蓝色小球)收集。
Stop-The-World停顿,Remark和CleanUp.Initial Mark标记过程中,因为它是并发执行,有可能会发生Young-only收集,造成标记数据有误差,因此需要重新标记一次,该过程为串行执行,会造成Stop-The-World.
在Remark 和Cleanup之间,G1将并发地计算出一份对象存活性总结报告,它将在Cleanup停顿阶段更新内部的数据结构
Space-reclamation阶段是否需要继续跟踪,如果继续跟随的话,Young-only阶段的完成仅仅做Young-only收集动作。Stop-The-World的全堆压缩(Full GC)。
如下图所示:

2种过程是循环往复收集。 G1指令细节 初始空间占用 Initiating Heap Occupancy Percent(IHOP): Initial Mark 收集触发的阈值,为老年代空间定义Heap占用的百分比。 JVM 设置参数:-XX:InitiatingHeapOccupancyPercent 默认情况下,根据标记时间以及老年代在标记周期中的内存分配,G1垃圾收集器将自动抉择理想的IHOP的值。 JVM 失效参数:-XX:-G1UseAdaptiveIHOP 修改区域空间大小 -XX:G1HeapRegionSize

G1 Vs. 传统垃圾回收器
Young-only 和Space-reclamation