垃圾收集器

垃圾收集器

Serial

单线程收集器,在进行垃圾收集工作时必须暂停其他所有工作的线程.简单高效.

ParNew收集器

ParNew收集器是serial收集器的多线程版本.ParNew是唯一一个可以和CMS收集器配合工作.CMS收集器是老年代收集器.

Parallel Scavenge 收集器

新生代收集器.采用复制算法收集器,新生代收集器.Parallel Scavenge 收集器的米表示达到一个可控制的吞吐量.又被称作吞吐量优先收集器.
Parallel Scavenge 收集器还有一个蚕食-XX:+UseAdaptiveSizePolicy.这是一个开关参数.参数打开之后不需要手动指定新生代大小,Eden与Survivor区的比例,晋升老年代的对象大小参数细节了.虚拟机会根据当前系统自动分配.这种调节称作GC自适应调节策略.

serial Old

Serial Old是Serial的老年代版本.同样是单线程收集器,采用标记整理算法.

ParallelOld收集器

ParallelOld收集器是ParallelScavenge的老年代版本.使用多线程和标记整理算法.吞吐量收集器.

CMS收集器

CMS收集器是基于标记清楚算法实现的.运作过程分为4步:
1.初始标记(CMS initial mark)
2.并发标记(CMS concurrent mark)
3.重新标记(CMS remark)
4.并发清除(CMS concurrent mark)
初始标记和重新标记需要”stop the word” .耗时最长的是并发标记.

CMS缺点

1.对CPU资源敏感.
2.无法处理浮动垃圾.所谓的浮动垃圾就是在收集器运行的时候产生的垃圾,这部分垃圾没有被标记所以不会被清除,只能等到下次GC的时候再清除.
3基于标记清除算法实现,收集结束会有大量的空间碎片产生.空间碎片过多会给大对象的存储带来 困难.

G1收集器

收集器技术发展前沿.
G1具有以下特点:
1.并行和并发.部分其他收集器原本需要停顿Java线程执行的GC操作,G1收集器扔可以通过并发的方式让程序继续执行.
2.分代收集:和其他一样,分代概念在G1中保存.
3.空间整合:G1整体是基于标记整理,局部是使用复制算法.因此不会有空间碎片产生.
4.可预测的停顿:G1 相对于CMS的优势.

在G1之前其他收集器针对的都是整个新生代或者老年代.使用G1时Java堆划分为多个大小相等的独立区域.新生代和老年代不再是物理隔离了,他们都是一部分Region(不需要连续)的集合.
G1运作步骤
1.初始标记.
2.并发标记
3.最终标记
4.筛选回收

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值