ParNew和CMS垃圾回收器组合

8.5.3. ParNew和CMS垃圾回收器组合

8.5.3.1. ParNew和CMS垃圾回收器组合

1)工作地点
ParNew垃圾回收器工作在年轻代,而CMS工作在老年代。
2)工作原理
当使用ParNew垃圾回收器时:首先在用户线程处于安全的时候执行STW(stop-the-world),这个时刻称为安全点,执行STW时用户线程会暂停执行,同时会有多个线程来并行清理垃圾,垃圾清理的算法是Copying拷贝算法。ParNew与Parallel Scavenge十分相似,ParNew是Parallel Scavenge的一个变种,ParNew有一些为CMS辅助的功能。
当使用CMS垃圾回收器时:这个过程可分为四个步,第一步进行初始标记,这个过程只标记老年区中的根节点对象,这个过程会产生STW,但由于只标记根节点对象,所以时间特别短。第二步,并发标记,标记线程与用户线程并发运行,标记那些存活的对象;但是在这个过程中,用户线程由于进行并发执行,所以运行速度会变慢,此外在并发标记的过程中,用户线程还会产生一些垃圾、或是将一些垃圾重新用起来。第三步,重新标记,寻找安全点,用户线程会暂停执行(STW),对所有对象重新进行标记,将在并发标记过程中新产生的垃圾和垃圾重新用起来的问题解决掉。第四步,垃圾清理和正在运行的线程并发执行,垃圾清除算法采用Mark Sweep标记清除算法。因为垃圾清除线程和用户线程是并发执行,所以在这个过程中正在运行的线程还会产生垃圾,这些垃圾只能在下次垃圾回收时进行处理,这种垃圾叫做浮动垃圾。
在这里插入图片描述

3)CMS的理念
CMS垃圾回收器意在通过并发的方式适度减少吞吐量以达到减少用户线程停顿时间的目标。
4)CMS的问题
a.问题1:无法处理浮动垃圾;
b.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值