Seria收集器
新生代复制算法。
单线程,stop the world, 简单,高效。
ParNew收集器(可配合 Seria 和 CMS)
新生代复制算法。
只是多线程并行收集而已(CMS 真正意义上支持并发,让垃圾收集线程和用户线程同时工作)
注:G1是一个面向全堆的收集器,不再需要其他新生代收集器的配合工作。所以自JDK 9开始, ParNew+CMS不再是官方推荐的服务端模式下的收集器解决方案了。
Parallel Scavenge收集器
新生代收集器 关注的不是尽量缩短垃圾收集时用户线程的停顿时间(CMS),则是达到一个可控制的吞吐量。被称为吞吐量优先收集器,有自适应调整策略,动态改变垃圾收集停顿时间参数和吞吐量参数。
clipboard.png
Serial Old收集器(可配合 Parallel Scavenge)
老年代标志整理,JDK1.5之前作为CMS回收失败的补充。
Parallel Old收集器
CMS收集器(并发收集,低停顿)
1.初始标记 仅标记与GC Root直接关联的对象(stop the world)耗时少。
2.并发标记 标记整个对象图,耗时多。
3.重新标记 标记产生变动的一部分对象(stop the world),耗时少。
4.并发清除 清除过程不需要移动存活对象,支持并发。
缺点:CMS不能等老年代填满了再收集,必须为用户线程预留一部分空间。如果预留的空间不足以分配新对象,会发生Concurrent Mode Failure,这个时候只能启动后备预案,临时启用Serial Old收集器。