1. Minor GC(新生代GC)的觸發條件數組
當Eden區滿時,觸發Minor GC。spa
2. Full GC(老年代GC)的觸發條件對象
(1)直接調用System.gc內存
(2)老年代空間不足(新生代存活下來的對象轉入、大對象的建立等引發)反射
調優策略:gc
(3)方法區空間不足(系統中要加載的類、反射的類和調用的方法較多等致使)程序
調優策略:方法
(4)Minor GC 時,survivor放不下,對象只能放入老年代,而此時老年代也放不下統計
調優策略:時間
增大survivor space、老年代空間
(5)經過Minor GC後進入老年代的平均大小大於老年代的連續可用內存(Minor GC 時會作一個判斷,統計以前晉升到老年代的對象的平均大小)
例如程序第一次觸發Minor GC後,有6MB的對象晉升到老年代,那麼當下一次Minor GC發生時,首先檢查老年代的剩餘空間是否大於6MB,若是小於6MB,則執行Full GC。