JVM 触发 Full GC 的几个条件

Full GC的触发条件

 

(1)直接调用 System.gc() 时(调用后并不会立即发生 FGC,后面会在某个时间点发生),操作系统建议执行 Full GC(  -XX:+DisableExplicitGC 可禁用 ),但是不必然执行;

(2)老年代的可用空间不足时;

(3)方法区空间不足时,或 Metaspace Space 使用达到 MetaspaceSize 但未达到 MaxMetaspaceSize 阈值;大多情况下扩容都会触发;

(4)concurrent mode failure ;

(5)通过Minor GC后进入老年代的平均大小大于老年代的可用内存时。由 Eden 区、From Survior 区向 To Survior 区复制时,对象大小大于 To Survior 区可用内存,则把该对象转存到老年代,且老年代的可用内存小于该对象大小时;( Promotion failed )

(6)执行 jmap -histo:live 或者 jmap -dump:live;

 

 

注:一般 Full GC 会伴随一次 Minor GC。

转载于:https://my.oschina.net/Rayn/blog/1808111

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值