JVM空间分配担保流程

JVM空间分配担保流程

  • 在进行Minor GC之前,JVM首先会检查【老年代最大连续空闲空间】是否大于【当前新生代所有对象占用的总空间】
  • 如果是,那么说明此次的Minor GC是安全的,可以放心的进行Minor GC
  • 如果不是,则JVM会去查看HandlePromotionFailure参数的值是否为true(表示是否允许担保失败)
  • 如果不允许担保失败,则此时就会进行一次Full GC 以腾出老年代更多的空间
  • 如果允许担保失败,则此时JVM会去检查【老年代最大连续空闲空间】是否大于【历次晋升到老年代的对象的平均大小】
  • 如果小于,则JVM此时会进行一次Full GC以便于腾出更多的老年代空间
  • 如果大于,则JVM会冒险进行一次Minor GC(为什么说是冒险呢? 因为有可能Minor GC后新生代所有的对象都还存活,并且survivor区无法容纳下这些对象,那么这些对象就会被晋升到老年代,导致老年代空间被填满)
  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值