垃圾收集器

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收集器。

G1 收集器

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。