jvm垃圾收集器

一.垃圾收集器之间的联系

其中,连线之间代表能够相互配合使用

二.新生代垃圾收集器介绍

1.serial收集器(-XX:+UserSerialGC,复制算法)

(1)java最基础也是最基本的收集器
(2)单线程收集,进行垃圾收集时,必须暂停所有的工作线程
(3)简单高效,client模式下默认的年轻代收集器

2.ParNew收集器(-XX:+UserParNewGC,复制算法)

(1)多线程收集,其余的行为,特点和serial收集器一样
(2)单核执行效率不如serial。在多核下执行才有优势

3.Parallel Scavenger收集器(-XX:+UserParallelGC,复制算法)

(1)比起关注用户线程停顿时间,更关注系统的吞吐量
(2)在多核下执行有优势,server模式下默认的年轻代收集器 

 三.老年代垃圾收集器介绍

 1.Serial Old收集器(-XX:+UserSerialOldGC,标记-整理算法)

(1)单线程收集,进行垃圾收集时,必须暂停所有工作线程
(2)简单高效,Client模式下默认的老年代收集器

2.Parallel Old收集器(-XX:+UserParallelOldGC,标记-整理算法)
(1)多线程,吞吐量优先

3.CMS收集器(-XX:+UserConcMarkSweepGC吗,标记-清除算法)

CMS收集器是一种以获取最短回收停顿时间为目标的收集器,能够加快响应速度,系统停顿时间短,给用户带来较好的体验。

CMS收集器执行流程
(1)初始标记:stop the world
(2)并发标记:并发追溯标记,程序不会停顿
(3)重新标记:暂停虚拟机,扫描CMS堆中的剩余对象
(4)并发清理:清理垃圾对象,程序不会停顿

CMS收集器缺点:

(1)CMS收集器对CPU资源敏感

(2)CMS收集器无法处理浮动垃圾

(3)CMS收集器采用标记-清除算法,会产生大量空间碎片

  四.G1垃圾收集器介绍

 1.Garbage First收集器(-XX:+UserG1GC,复制+标记-整理算法)
特点:
(1)并发和并行
(2)分代收集
(3)空间整合
(4)可预测的停顿
原理:
(1)将整个java堆内存分成多个大小相等的Region
(2)年轻代和老年代不再物理隔离

五.垃圾收集器的未来

 JDK11将会推出比较牛逼的垃圾回收器Epsilon GC和ZGC,敬请期待

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值