G1 Garbage First(为什么叫Garbage First)

1.G1特点

从jdk9开始,CMS就被弃用,使用G1代替CMS,同时注重高吞吐和低延时的特点,默认的暂停目标是200ms。超大堆内存,会将堆划分为多个大小相等的region。整体上是标记整理算法,两个区域之间是复制算法。

怎么理解同时注重高吞吐量和低延时?

G1采用了一系列的措施来实现高吞吐和低延时

1.区域化管理:G1将整个堆划分为多个region,每个region都可以是伊甸园区、幸存区、老年代区。这种细粒度划分更有助于对每个区域有针对性地进行垃圾回收。减少每次回收的范围,提高吞吐量。

2.智能优先级调整:G1会根据垃圾回收情况动态调整垃圾回收的优先级,每次回收时都选取垃圾最多的区域,这样就有利于在规定的时间内提高吞吐量。为什么叫G1,优先回收垃圾最多的区域。

3.并发阶段。

2.垃圾回收器的三个阶段

1.Young Collection(First)

刚开始都是小区域的白色的未使用的内存,随着对象的创建,这些对象会被放入伊甸园区,当这个内存逐渐被占满,那这个时候会进行一次垃圾回收,这个时候会将Eden区复制进幸存区(两个区域之间使用复制算法)并对这个对象赋值年龄。幸存区的对象逐渐占满,这个时候又触发一次垃圾回收,如果年龄达到了15,就会被放进老年代。如果没有满的对象被复制进其他的幸存区。这就是新生代垃圾回收。

2.Young Collection+Concurrent Mark

 (1).在Young GC时会进行GC Root的初始标记

3.Maxed Collection

这里会有一个问题就是什么时候触发呢?(老年代达到一定的阈值)

当老年代占用堆空间比例达到阈值时,进行并发标记(不会STW),由下面的JVM参数决定

-XX:InitiatingHeapOccupancyPercent=percent(默认45%)

会对E、S、O进行全面的垃圾回收

1.最终标记(Remark)会STM

2.复制存活对象(会STM)

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值