JVM笔记3-经典的垃圾收集器

image.png上图展示了7种,适用于不同分代中的收集器。如果两者之间由连线,说明可以搭配使用。
PS:在JDK8中将Serial+CMS和ParNew+Serial Old的组合声明为废弃,并且在JDK9中完全取消了这两种组合的支持。

1、Serial收集器

Serial收集器是JVM中最早、最基础的一个收集器。这个收集器是一个单线程工作的收集器。采用标记复制算法。它的“单线程”并不仅仅说明它是使用一个处理器或单个收集线程去完全收集工作,更重要的是强调,在它进行垃圾收集工作时,需要将其他所有工作线程(包括用户的工作线程)全部停掉,直到它收集结束(Stop The World)。
下图所示,是Serial/Serial Old收集器的运行过程:
image.png

由于Serial收集器的简单高效(与其他收集器的单线程相比)、额外内存消耗最小的特点,Serial收集器更适合用于在单核处理器或者处理器核心较小的的环境上。

2、ParNew收集器

ParNew实际上是Serial收集器的多线程的并行版本。采用的也是标记复制算法。除了使用多线程进行垃圾收集之外,其他的行为包括Serial收集器可用的参数(例如:-XX:SurvivorRatio、-XX:PretenureSizeThreshold)、收集算法、Stop The World、对象分配规则、回收策略等都与Serial收集器一致。

ParNew+Serial Old收集器的运行过程:
image.png
但是由于,在JDK9版本中不在支持ParNew+Serial Old的组合,因此只有CMS才能配合ParNew使用。

在JDK5中,HotSpot发布一个跨时代的垃圾收集器,CMS收集器。这款收集器是HotSpot虚拟机中第一个支持并发的垃圾收集器,它首次实现了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值