G1收集器

G1 收集器jdk1.7 正式使用 替换CMS方案

特点:
并行:多个GC线程同时工作
并发:与应用程序交替执行
分代GC:兼顾新生代 和 老年代
空间整理:每次GC之后都会复制对象。进行空间整理,减少空间碎片
可预见性:缩小了回收范围,从而可控全局停顿

G1收集过程:

新生代GC:eden 区清空,收集部分survivor区数据。

并发标记周期(为了降低一次停顿时间)
初始标记(进行一次新生代GC)
根区域扫描(不会停顿,不能被新生代GC中断)扫描survivor 和 老年代区域
并发标记:(可以被新生代GC中断)扫描整个堆对象
重新标记:引起全局停顿 为了纠正 在并发标记时候应用线程对标记结果产生的影响
独占清理:引起停顿 计算各个区域存活对象和比例
并发清理:根据独占清理计算结果,回收那些不含存活对象的区域(少量对象被回收)
混合收集: 既回收正常年轻代GC,又选取一些被标记的老年代区域进行回收(标记为G区域进行回收)。 大部分垃圾回收在这个阶段

必要时进行FULL GC: 混合GC和新生代GC 空间不足,都会引发full gc。


相关的一些参数

-XX:+UseG1GC 打开G1收集器
-XX:MaxGCPauseMillis 目标最大停顿时间 (通过调整堆大小和新生代和老年代比例来达到目标)
-XX:ParallelGCThreads 设置并发回收时 GC线程的数量
-XX:InitiatingHeapOccupancyPercent 设置堆使用率达到多少 并发标记周期的执行
过大容易引起Full GC ,因为会导致并发周期标记迟迟得不到执行 过小容易使得并发周期频繁发生,抢占cpu.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值