垃圾收集器

垃圾收集器

一张图了解所有垃圾收集器:


上图中的收集器两两之间有连线的,则说明可以搭配使用。

由于markdownpad2不知道怎么回事插入的图片无法显示,如果无法正常查看图片,可以移步到我的CSDN地址查看图片:https://blog.csdn.net/qq_40995335/article/details/83716798

Serial收集器

单线程的收集器,在进行垃圾收集时,必须暂停其他所有的工作线程,直到它收集结束。Serial收集器是虚拟机运行在Client模式下的默认新生代收集器,对于限定单个CPU的环境来说,Serial收集器由于没有线程交互的开销,可以获得最高的单线程收集效率。

ParNew收集器

是Serial收集器的多线程版本,是许多虚拟机运行在Server模式下的首选新生代收集器。

Parallel Scavenge收集器

目标是达到一个可控制的吞吐量。经常被称为“吞吐量优先”收集器。参数-XX:+UseAdaptiveSizePolicy打开后,虚拟机会根据当前系统的运行情况收集性能监控信息,动态调整这些参数以提供最合适的停顿时间或者最大的吞吐量————GC自适应的调节策略(GC Ergonomics)。自适应调节策略也是Parallel Scavenge收集器与ParNew收集器的一个重要区别。

Serial Old收集器

Serial收集器的老年代版本,是单线程收集器,给Client模式下的虚拟机使用。

Parallel Old收集器

是Parallel Scavenge收集器的老年代版本,使用多线程和“标记-整理”算法,在注重吞吐量以及CPU资源敏感的场合,用于配合Parallel Scavenge收集器。

CMS(Concurrent Mark Sweep)收集器

以获取最短回收停顿时间为目标的收集器。基于“标志-清理”算法。具有并发收集、低停顿的特点。

收集过程分为4个步骤:

  1. 初始标记(CMS initial mark)
  2. 并发标记(CMS concurrent mark)
  3. 重新标记(CMS remark)
  4. 并发清除(CMS concurrent sweep)

G1收集器

是面向服务端应用的垃圾收集器。
具有以下特点:

  • 并行与并发
  • 分代收集
  • 空间整合
  • 可预测的停顿

收集器运行过程大致如下:

  1. 初始标记(Initial Marking)
  2. 并发标记(Concurrent Marking)
  3. 最终标记(Final Marking)
  4. 筛选回收(Live Data Counting and Evacuation)
-------------本文结束感谢您的阅读-------------