-XX:+UseSerialGC |
使用單線程垃圾回收算法 |
適用于容量小于100MB的堆 |
-XX:+UseParallelOldGC |
應用線程停頓時使用多線程對老年代進行垃圾回收 |
如果你的應用能夠容忍偶爾發(fā)生長時間停頓癌别,而你又希望用最小的CPU消耗取得最大吞吐量,可以考慮使用這個參數(shù) |
-XX:+UseParallelGC |
應用線程停頓時使用多線程對新生代進行垃圾回收 |
|
-XX:+UseConcMarkSweepGC |
使用后臺線程以最低停頓時間回收老年代垃圾對象 |
如果你有充足的CPU資源可以運行后臺線程蹋笼,你的堆也相對較小展姐,并且你不希望垃圾收集的停頓時間過長,可以考慮使用這個參數(shù) |
-XX:+UseParNewGC |
應用線程停頓時使用多線程對新生代進行垃圾回收 |
與ConcMarkSweepGC標志結合使用 |
-XX:+UseG1GC |
應用線程停頓時使用多線程對新生代進行垃圾回收剖毯,使用后臺線程對老年代進行垃圾回收圾笨,以最大程度減少停頓 |
如果你有足夠的CPU資源可以運行后臺線程,你的堆也比較大逊谋,同時你又不希望有長時間的停頓擂达,可以考慮使用這個參數(shù) |
-Xms |
指定堆的初始大小 |
|
-Xmx |
指定堆的最大值 |
|
-XX:NewRatio |
指定新生代與老年代之間的比例 |
|
-XX:NewSize |
指定新生代的初始大小 |
|
-XX:MaxNewSize |
指定新生代的最大值 |
|
-Xmn |
指定新生代的初始值最大值 |
|
-XX:PermSize=N |
指定永久代的初始值 |
|
-XX:MaxPermSize=N |
指定永久代的最大值 |
|
-XX:MetaspaceSize=N |
指定元空間的初始大小 |
|
-XX:MaxMetaspaceSize=N |
指定云空間的最大容量 |
|
-XX:ParallelGCThreads=N |
指定垃圾收集使用的線程數(shù) |
如果系統(tǒng)上同時運行了多個JVM,可以適當減少該值胶滋。如果堆空間非常大且CPU資源充足可以適當增大該值 |
-verbose:gc |
開啟基本GC日志 |
建議一直開啟 |
-Xloggc:<path> |
指定GC日志輸出文件路徑 |
|
-XX:+PrintGC |
開啟基本GC日志 |
建議一直開啟 |
-XX:+PrintGCDetails |
開啟詳細GC日志 |
|
-XX:+PrintGCTimeStamps |
為GC日志中的每個條目打印時間戳 |
|
-XX:+PrintGCDateStamps |
為GC日志中的每個條目打印日期時間戳 |
|
-XX:+PrintReferenceGC |
打印GC過程中的軟引用和弱引用信息 |
如果程序中有使用軟引用或弱引用板鬓,建議使用這個參數(shù) |
-XX:+UseGCLogFileRotation |
開啟GC日志循環(huán)悲敷,以節(jié)省空間 |
長期運行的程序建議使用這個參數(shù) |
-XX:NumberOfGCLogFiles=N |
開啟GC日志循環(huán)時,保留多少個日志文件 |
|
-XX:GCLogFileSize=N |
開啟GC日志循環(huán)時俭令,指定每個文件的大小 |
|
-XX:+UseAdaptiveSizePolicy |
使JVM根據(jù)GC目標調整堆大小 |
|
-XX:+PrintAdaptiveSizePolicy |
在GC日志中輸出大小調整的詳細信息 |
|
-XX:+PrintTenuringDistribution |
在GC日志中輸出對象保持的信息 |
|
-XX:InitialSurvivorRatio=N |
設置新生代中預留給Survivor空間的大小 |
|
-XX:MinSurvivorRatio=N |
設置新生代空間中用于自適應調整Survivor空間大小 |
|
-XX:TargetSurvivorRatio=N |
設置Survivor空間保留的空閑空間 |
|
-XX:InitialTenuringThreshold=N |
JVM試圖在Survivor空間保持對象的GC周期 |
|
-XX:MaxTenuringThreshold=N |
設置JVM可以將一個對象保持在Survivor空間的最大GC周期數(shù) |
|
-XX:MaxGCPauseMillis |
為多線程垃圾收集器設置最長停頓時間后德,堆的大小會依據(jù)該目標動態(tài)調整 |
|
-XX:GCTimeRatio=N |
為多線程垃圾收集器設置在垃圾收集上花費的時間比例 |
|
-XX:CMSInitiatingOccupancyFraction=N |
設置CMS垃圾收集器開啟老年代后臺掃描的時機 |
如果發(fā)生并發(fā)失效,應該適當減少該參數(shù)的值 |
-XX:+UseCMSInitiatingOccupancyOnly |
通知CMS收集器僅通過-XX:CMSInitiatingOccupancyFraction標志決定何時啟動后臺掃描 |
與-XX:CMSInitiatingOccupancyFraction一起使用 |
-XX:ConcGCThreads=N |
設置CMS收集器后臺掃描線程數(shù) |
如果發(fā)生并發(fā)失效抄腔,同時又有大量的空閑CPU資源時瓢湃,可以適當提高該值 |
-XX:+CMSPermGenSweepingEnabled |
通知CMS收集器對永久代進行整理 |
|
-XX:CMSInitiatingPermOccupancyFraction=N |
設置CMS開啟永久代掃描的時機 |
|
-XX:+CMSClassUnloadingEnabled |
設置CMS收集器在永久代掃描結束后卸載類 |
|
-XX:CMSIncrementalMode |
設置CMS以增量模式運行 |
|
-XX:CMSIncrementalModeSafetyFactor=N |
影響增量式CMS垃圾收集后臺線程的運行頻度 |
|
-XX:CMSIncrementalDutyCycleMin=N |
影響增量式CMS垃圾收集后臺線程的運行頻度 |
|
-XX:CMSIncrementalDutyCycleMax=N |
影響增量式CMS垃圾收集后臺線程的運行頻度 |
|
-XX:+CMSIncrementalDutyCycle |
影響增量式CMS垃圾收集后臺線程的運行頻度 |
|
-XX:InitiatingHeapOccupancyPerent |
設置G1收集開啟后臺掃描的時機 |
如果發(fā)生并發(fā)失敗應該適當減小該參數(shù) |
-XX:G1MaxedGCCountTarget=N |
設置混合GC次數(shù) |
|
-XX:G1HeapRegionSize=N |
設置G1分區(qū)的大小 |
|
-XX:HeapDumpOnOutOfMemoryError |
JVM堆轉儲 |
|
-XX:HeapDumpPath=<Path> |
設置自動堆轉儲的文件名 |
-XX:SoftRefLRUPolicyMSPerMB=N |
設置使用多長時間后軟引用對象可以被回收 |
內存不足的情況下,減少這個值可以更快的回收軟引用對象 |
-XX:MaxDirectMemorySize=N |
設置本地內存最大值 |
|
-XX:+UseLargePages |
設置JVM從操作系統(tǒng)的大頁面系統(tǒng)中分配頁面 |
如果操作系統(tǒng)支持赫蛇,這個參數(shù)可以改善性能 |