垃圾收集器

个人博客地址:https://alexaccele.github.io/

垃圾收集器

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


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

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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值