JVM空间分配担保流程
Posted wen-pan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM空间分配担保流程相关的知识,希望对你有一定的参考价值。
JVM空间分配担保流程
- 在进行Minor GC之前,JVM首先会检查【老年代最大连续空闲空间】是否大于【当前新生代所有对象占用的总空间】
- 如果是,那么说明此次的Minor GC是安全的,可以放心的进行Minor GC
- 如果不是,则JVM会去查看
HandlePromotionFailure
参数的值是否为true(表示是否允许担保失败) - 如果不允许担保失败,则此时就会进行一次Full GC 以腾出老年代更多的空间
- 如果允许担保失败,则此时JVM会去检查【老年代最大连续空闲空间】是否大于【历次晋升到老年代的对象的平均大小】
- 如果小于,则JVM此时会进行一次Full GC以便于腾出更多的老年代空间
- 如果大于,则JVM会冒险进行一次
Minor GC
(为什么说是冒险呢? 因为有可能Minor GC
后新生代所有的对象都还存活,并且survivor
区无法容纳下这些对象,那么这些对象就会被晋升到老年代,导致老年代空间被填满)
以上是关于JVM空间分配担保流程的主要内容,如果未能解决你的问题,请参考以下文章