JVM学习(4)-垃圾收集器

点击查看更多JVM总结

1.Serial垃圾收集器

Serial垃圾收集器是最早出现的新生代收集器。

  1. 作用域:新生代
  2. 使用算法:复制算法
  3. 线程数:单线程
  4. 特点:在垃圾收集的过程中,由于是单线程的,需要stop-the-world,即将用户线程停止。
    在这里插入图片描述
2.ParNew垃圾收集器

ParNew垃圾收集器是Serial垃圾收集器的多线程版本,提高了多核CPU收集垃圾的效率。

  1. 作用域:新生代
  2. 使用算法:复制算法
  3. 线程数:多线程
  4. 特点:由于是多线程的,在垃圾收集过程中效率较高(针对多核CPU),所以stop-the-world的时间较短。
    在这里插入图片描述
3.Parallel Scavenge垃圾收集器

Parallel Scavenge垃圾收集器和ParNew收集器相似,都是新生代多线程的垃圾收集器,但是Parallel Scavenge垃圾收集器的目标并不是简单地缩短stw的时间,而是提高代码执行吞吐量。代码执行吞吐量=运行用户代码的时间/(运行用户代码的时间 + 垃圾回收的时间)。

  1. 作用域:新生代
  2. 使用算法:复制算法
  3. 线程数:多线程
  4. 特点:以提高代码吞吐量为目的设计。
    在这里插入图片描述
  5. 吞吐量控制:
    -XX:MaxGCPauseMillis用于控制最大垃圾收集停顿时间
    -XX:GCTimeRatio用于直接控制吞吐量的大小
4.Serial Old垃圾收集器

Serial Old垃圾收集器是Serial垃圾收集器的老年代版本,它和Serial垃圾收集器相似。

  1. 作用域:老年代
  2. 使用算法:标记-整理算法
  3. 线程数:单线程
  4. 特点:stw时间较长

在这里插入图片描述

5.Parallel Old垃圾收集器

Parallel Old收集器是Parallel Scavenge收集器的老年代版本,使用标记-整理算法

  1. 作用域:老年代
  2. 使用算法:标记-整理算法
  3. 线程数:多线程
  4. 特点:以提高代码吞吐量为目的设计。
    在这里插入图片描述
  5. 吞吐量控制:
    -XX:MaxGCPauseMillis用于控制最大垃圾收集停顿时间
    -XX:GCTimeRatio用于直接控制吞吐量的大小
6.CMS垃圾收集器

CMS(Concurrent Mark Sweep)垃圾收集器是一款优秀的老年代垃圾收集器,它采用并发技术和标记-清除算法。

  1. 作用域:老年代
  2. 使用算法:标记-清除算法
  3. 线程数:并发线程
  4. 特点:以缩短停顿时间为目的设计。
    在这里插入图片描述
  5. 垃圾收集过程:
1)初始标记(GC线程单独运行):标记所有GC ROOTS 对象
2)并发标记(GC线程与用户线程并发运行):标记GC ROOTS 可达对象
3)重新标记(GC线程单独运行):用于重新标记在并发标记阶段新增的GC ROOTS可达对象
4)并发清理(GC线程与用户线程并发运行):将所有不可达的对象清理
7.G1垃圾收集器

G1垃圾收集器是JDK 1.7开始支持的一款垃圾回收器,在JDK 1.9中成为默认的垃圾回收器。它和CMS一样都是并行的,但是它以“Garbage First”为目标,而不分垃圾回收的区域。

  1. 作用域:新生代和老年代
  2. 使用算法:分代收集算法
  3. 线程数:并发线程
  4. 特点:垃圾收集为首要任务,将内存分割为许多块Region区域并用E(eden)、S(servivor)、O(old)和H去标记它们,只要满足了收集条件就立刻收集。
    在这里插入图片描述
  5. 垃圾收集过程:
1)初始标记(GC线程单独运行):标记所有GC ROOTS 对象
2)并发标记(GC线程与用户线程并发运行):标记GC ROOTS 可达对象
3)重新标记(GC线程单独运行):用于重新标记在并发标记阶段新增的GC ROOTS可达对象
4)并发清理(GC线程与用户线程并发运行):将所有不可达的对象清理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BoringRong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值