老年代的空间分配担保规则

Java在进行Minor GC前会检查老年代内存是否足够容纳新生代所有对象。如果足够则执行Minor GC,否则依据'-XX:-HandlePromotionFailure'参数判断:如果设置,且老年代内存大于历次Minor GC平均晋升大小,会尝试Minor GC;否则直接触发Full GC。未设置该参数时,直接Full GC。Full GC后仍不足则可能导致OOM。
摘要由CSDN通过智能技术生成
老年代空间分配担保规则
    首先,在执行任何一次Minor GC之前,JVM会检查一下老年代可用的内存空间,是否大于新生代所有对象的总大小(极端情况下,可能新生代Minor GC后,所有对象都存活下来,这时所有新生代对象全部要进入老年代)
    (1) 检查后,如果老年代的可用内存大小是大于新生代的所有对象的总大小的,此时就可以放心大胆地对新生代发起一次Minor GC了。因为即使Minor GC之后所有对象都存活,即使Survivor区放不下,也可以转移到老年代去。
    (2) 检查后,如果老年代的可用内存大小是小 新生代的所有对象的总大小的,看是否设置了参数 "-XX:-HandlePromotionFailure"( 设置空间担保
    [1]有这个参数,就会继续尝试下一步判断,就是看看老年代的可用内存是否大于之前每一次Minor GC后进入老年代的对象总和的平均大小
      <1>当老年代的可用内存大于之前每一次Minor GC后进入老年代的对象总和的平均大小
<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JVM中的年代垃圾回收是指对年代进行垃圾回收的过程。年代是堆内存的一部分,用于存放生命周期较长的对象。年代垃圾回收的触发条件与空间分配担保有关。在发生Minor GC之前,虚拟机会检查年代最大可用的连续空间是否大于新生代所有对象的总空间。如果大于,则此次Minor GC是安全的;如果小于,则虚拟机会根据HandlePromotionFailure设置值来决定是否进行空间分配担保空间分配担保是指在发生Minor GC时,如果年代的连续空间小于新生代所有对象的总空间,虚拟机会根据HandlePromotionFailure的设置值来决定后续的操作。如果HandlePromotionFailure为true,虚拟机会进一步检查年代最大可用连续空间是否大于历次晋升到年代的对象的平均大小。如果大于,则尝试进行一次Minor GC,但仍然有风险;如果小于或者HandlePromotionFailure为false,则会进行一次Full GC。 总结一下,年代垃圾回收是在发生Minor GC时对年代进行的垃圾回收过程。空间分配担保的目的是确保年代有足够的空间来容纳新生代的对象。如果空间不足,根据HandlePromotionFailure的设置值,虚拟机会决定是继续进行Minor GC还是进行一次Full GC。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [JVM垃圾回收——对象进入年代](https://blog.csdn.net/weixin_39555954/article/details/130042958)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值