JVM 触发 Full GC 的几个条件

原文链接: https://my.oschina.net/Rayn/blog/1808111

JVM 触发 Full GC 的几个条件_第1张图片

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

你可能感兴趣的:(JVM 触发 Full GC 的几个条件)