JVM的常见的垃圾收集器

1.SerialSerial + Serial Old:最古老的垃圾收集器,Serial”体现在其收集工作是单线程的, 在进行垃圾收集过程中,会进入臭名昭著的Stop-The-World”状态,一直是 Client 模式下 JVM 的默认选项。针对新生代采用复制算法(-XX:+UseSerialGC

2.Serial Old:作用于老年代,采用了标记 - 整理(Mark-Compact)算法,与Serial配合使用。

3.ParNew:新生代 GC 实现,Serial GC 的多线程版本,最常见的应用场景是配合老年代的 CMS GC 工作出发点在于加速资源回收的速度,以减少应用的STW时间;高响应速度XX:+UseParNewGC ParNew+cms+serialold

4.Parallel Scavenge: 新生代的多线程收集器(并行收集器) 其采用的是Copying算法,是 server 模式 JVM 的默认 GC 选择出发点在于资源回收的吞吐量高吞吐量-XX:+UseParallelGC  Parallel Scavenge + Parallel Old

5.Parallel Old:并行运行;作用于老年代;标记-整理算法;吞吐量优先;适用于后台运算而不需要太多交互的场景。

6.CMS:基于标记 - 清除(Mark-Sweep)算法,设计目标是尽量减少停顿时间,采用的标记 - 清除算法,存在着内存碎片化问题,所以难以避免在长时间运行等情况下发生 full GC-XX:+UseConcMarkSweepGC,在 JDK 9 中被标记为废弃(deprecated

7.G1垃圾收集器:  见另一篇笔记

原文地址:https://www.cnblogs.com/wl889490/p/12770592.html