上一篇文章簡單寫了幾種常見的垃圾收集器,俗話說,好記性不如爛筆頭,今天總結一下這些垃圾收集器的參數總結,供自己和需要的讀者將來查閱
-XX:+UseSerialGC : 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
–XX:+UseG1GC : 打開此開關后,使用G1垃圾收集器
參考資料:周志明《深入理解Java虛擬機》第二版第三章
作 者: Bridge Li,http://www.bridgeli.cn原文鏈接:http://www.bridgeli.cn/archives/347新聞熱點
疑難解答