JVM垃圾回收機制:spa
![](http://static.javashuo.com/static/loading.gif)
JVM所採用的Old區垃圾收集器爲CMS,CMS會在如下幾種狀況下發生Full GC:線程
- 大對象分配到老年代時,可用空間不足
- perm或metaspace空間不足 (JDK 8 開始HotSpot取消了perm,將類信息存放在metaspace中)
- 晉升失敗:年輕代的存活對象,須要遷移到老年代時,老年代剩餘對象不足
- promotion failed:擔保失敗,,gc日誌會記錄信息(如:[ParNew (promotion failed): 1669947K->145784K(1887488K));
- concurrent mode failure:執行CMS GC的過程當中同時業務線程將對象放入老年代,而此時老年代空間不足,或者在作Minor GC的時候,新生代Survivor空間放不下,須要放入老年代,而老年代也放不下而產生的,gc日誌會記錄信息(如:(concurrent mode failure): 2902473K->1221894K(3354624K), 0.3778980 secs] )