垃圾收集器參數總結

參數 描述

-XX:+UseSerialGCjava

Jvm運行在Client模式下的默認值,打開此開關後,使用Serial + Serial Old的收集器組合進行內存回收
-XX:+UseParNewGC 打開此開關後,使用ParNew + Serial Old的收集器進行垃圾回收
-XX:+UseConcMarkSweepGC 使用ParNew + CMS +  Serial Old的收集器組合進行內存回收,Serial Old做爲CMS出現「Concurrent Mode Failure」失敗後的後備收集器使用。
-XX:+UseParallelGC Jvm運行在Server模式下的默認值,打開此開關後,使用Parallel Scavenge +  Serial Old的收集器組合進行回收
-XX:+UseParallelOldGC 使用Parallel Scavenge +  Parallel Old的收集器組合進行回收
-XX:SurvivorRatio 新生代中Eden區域與Survivor區域的容量比值,默認爲8,表明Eden:Subrvivor = 8:1
-XX:PretenureSizeThreshold 直接晉升到老年代對象的大小,設置這個參數後,大於這個參數的對象將直接在老年代分配
-XX:MaxTenuringThreshold 晉升到老年代的對象年齡,每次Minor GC以後,年齡就加1,當超過這個參數的值時進入老年代
-XX:UseAdaptiveSizePolicy 動態調整java堆中各個區域的大小以及進入老年代的年齡
-XX:+HandlePromotionFailure 是否容許新生代收集擔保,進行一次minor gc後, 另外一塊Survivor空間不足時,將直接會在老年代中保留
-XX:ParallelGCThreads 設置並行GC進行內存回收的線程數
-XX:GCTimeRatio GC時間佔總時間的比列,默認值爲99,即容許1%的GC時間,僅在使用Parallel Scavenge 收集器時有效
-XX:MaxGCPauseMillis 設置GC的最大停頓時間,在Parallel Scavenge 收集器下有效
-XX:CMSInitiatingOccupancyFraction 設置CMS收集器在老年代空間被使用多少後出發垃圾收集,默認值爲68%,僅在CMS收集器時有效,-XX:CMSInitiatingOccupancyFraction=70
-XX:+UseCMSCompactAtFullCollection 因爲CMS收集器會產生碎片,此參數設置在垃圾收集器後是否須要一次內存碎片整理過程,僅在CMS收集器時有效
-XX:+CMSFullGCBeforeCompaction 設置CMS收集器在進行若干次垃圾收集後再進行一次內存碎片整理過程,一般與UseCMSCompactAtFullCollection參數一塊兒使用
-XX:+UseFastAccessorMethods 原始類型優化
-XX:+DisableExplicitGC 是否關閉手動System.gc
-XX:+CMSParallelRemarkEnabled 下降標記停頓
-XX:LargePageSizeInBytes 內存頁的大小不可設置過大,會影響Perm的大小,-XX:LargePageSizeInBytes=128m

Client、Server模式默認GC 併發

  新生代GC方式 老年代和持久GC方式

Client優化

Serial 串行GC Serial Old 串行GC
Server Parallel Scavenge  並行回收GC Parallel Old 並行GC

Sun/Oracle JDK GC組合方式 spa

  新生代GC方式 老年代和持久GC方式

-XX:+UseSerialGC線程

Serial 串行GC Serial Old 串行GC
-XX:+UseParallelGC Parallel Scavenge  並行回收GC Serial Old  並行GC
-XX:+UseConcMarkSweepGC ParNew 並行GC CMS 併發GC 
當出現「Concurrent Mode Failure」時
採用Serial Old 串行GC
-XX:+UseParNewGC ParNew 並行GC Serial Old 串行GC
-XX:+UseParallelOldGC Parallel Scavenge  並行回收GC Parallel Old 並行GC
-XX:+UseConcMarkSweepGC
-XX:+UseParNewGC
Serial 串行GC CMS 併發GC 當出現「Concurrent Mode Failure」時採用Serial Old 串行GC
相關文章
相關標籤/搜索