### GC常用參數
* -Xmn -Xms -Xmx -Xss
年輕代 最小堆 最大堆 棧空間
* -XX:+UseTLAB
使用TLAB,默認打開
* -XX:+PrintTLAB
打印TLAB的使用情況
* -XX:TLABSize
設置TLAB大小
* -XX:+DisableExplictGC(默認啓用)
System.gc()不管用 ,FGC
* -XX:+PrintGC
* -XX:+PrintGCDetails
* -XX:+PrintHeapAtGC
* -XX:+PrintGCTimeStamps
* -XX:+PrintGCApplicationConcurrentTime (低)
打印應用程序時間
* -XX:+PrintGCApplicationStoppedTime (低)
打印暫停時長
* -XX:+PrintReferenceGC (重要性低)
記錄回收了多少種不同引用類型的引用
* -verbose:class
類加載詳細過程
* -XX:+PrintVMOptions
* -XX:+PrintFlagsFinal -XX:+PrintFlagsInitial
必須會用
* -Xloggc:opt/log/gc.log
* -XX:MaxTenuringThreshold
升代年齡,最大值15
* 鎖自旋次數 -XX:PreBlockSpin 熱點代碼檢測參數-XX:CompileThreshold 逃逸分析 標量替換 ...
這些不建議設置
### Parallel常用參數
* -XX:SurvivorRatio
* -XX:PreTenureSizeThreshold
大對象到底多大
* -XX:MaxTenuringThreshold
* -XX:+ParallelGCThreads
並行收集器的線程數,同樣適用於CMS,一般設爲和CPU核數相同
* -XX:+UseAdaptiveSizePolicy
自動選擇各區大小比例
### CMS常用參數
* -XX:+UseConcMarkSweepGC
* -XX:ParallelCMSThreads
CMS線程數量
* -XX:CMSInitiatingOccupancyFraction
使用多少比例的老年代後開始CMS收集,默認是68%(近似值),如果頻繁發生SerialOld卡頓,應該調小,(頻繁CMS回收)
* -XX:+UseCMSCompactAtFullCollection
在FGC時進行壓縮
* -XX:CMSFullGCsBeforeCompaction
多少次FGC之後進行壓縮
* -XX:+CMSClassUnloadingEnabled
* -XX:CMSInitiatingPermOccupancyFraction
達到什麼比例時進行Perm回收
* GCTimeRatio
設置GC時間佔用程序運行時間的百分比
* -XX:MaxGCPauseMillis
停頓時間,是一個建議時間,GC會嘗試用各種手段達到這個時間,比如減小年輕代
### G1常用參數
* -XX:+UseG1GC
* -XX:MaxGCPauseMillis
建議值,G1會嘗試調整Young區的塊數來達到這個值
* -XX:GCPauseIntervalMillis
GC的暫停間隔目標
* -XX:+G1HeapRegionSize
分區大小,建議逐漸增大該值,1 2 4 8 16 32。
隨着size增加,垃圾的存活時間更長,GC間隔更長,但每次GC的時間也會更長
ZGC做了改進(動態區塊大小)
* G1NewSizePercent
新生代最小比例,默認爲5%
* G1MaxNewSizePercent
新生代最大比例,默認爲60%
* GCTimeRatio
GC時間建議比例,G1會根據這個值調整堆空間
* ConcGCThreads
線程數量
* InitiatingHeapOccupancyPercent
啓動G1的堆空間佔用比例
GC常用參數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.