23、JVM实战:7种垃圾回收器总结

学习完了7种垃圾回收器之后,总结一下
为啥是7种?
Serial
Serial Old
ParaNew
Parallel Scavenge
Parallel Old
CMS
G1
共7种,其中主要学习的是Parallel + CMS +G1

垃圾回收器 并行/串行/并发分类 针对回收位置 回收算法 主要思想 适用场景
Serial 串行 新生代 复制算法 低停顿时间 硬件资源匮乏,单核cpu情况下
Serial Old 串行 老年代 标记-压缩算法 低停顿时间 硬件资源匮乏,单核cpu情况下
ParNew 并行 新生代 复制算法 低停顿时间 多核cpu场景下替代Serial
Parallel Scavenge 并行 新生代 复制算法 高吞吐量 jdk8默认垃圾回收器,多用于服务端
Parallel Old 并行 老年代 标记-压缩算法 高吞吐量 jdk8默认垃圾回收器,多用于服务端
CMS 并行/并发 老年代 标记-清除算法 低停顿时间 适用于低停顿时间的场景,如移动端
G1 并行/并发 新生代/老年代 复制算法/标记-压缩算法 高吞吐量的前提下,尽量保证低停顿时间 适用于服务端
jdk9之后默认垃圾回收器

1.1 垃圾回收器的选择

7种垃圾回收器以及他们的组合关系如何选择:
没有完美的垃圾回收器,只能针对不同的场景不同的业务来选择垃圾回收器

1、 当堆内存较小(100M以下)选择串行垃圾回收器;
2、 服务器硬件为单核,并且不要求低停顿时间的时候,选择串行垃圾回收器;
3、 多核cpu,要求高吞吐量选择并行垃圾回收器或者jvm默认垃圾回收器;
4、 多核cpu,要求低延迟时选择并发垃圾回收器;
5、 G1是目前大多数项目可以使用的最优解,特殊场景除外.;

版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: