堆記憶體設定
- -Xms:設定JVM堆的初始大小。
- 例如:
-Xms2g
表示初始堆大小為2GB。
- -Xmx:設定JVM堆的最大大小。
- 例如:
-Xmx2g
表示最大堆大小為2GB。
- -XX:NewRatio:設定年輕代和老年代的比例。
- 例如:
-XX:NewRatio=4
表示年輕代和老年代的比例為1:4。
- -XX:SurvivorRatio:設定Eden區和Survivor區的比例。
- 例如:
-XX:SurvivorRatio=8
表示Eden區和Survivor區的比例為8:2。
垃圾回收器設定
- -XX:+UseSerialGC:使用序列垃圾回收器。
- -XX:+UseParallelGC:使用並行垃圾回收器(年輕代)。
- -XX:+UseParallelOldGC:使用並行垃圾回收器(年輕代和老年代)。
- 例如:
-XX:+UseParallelOldGC
表示使用ParNew + Parallel Old垃圾回收器組合。
- -XX:+UseConcMarkSweepGC:使用CMS垃圾回收器(年輕代使用ParNew,老年代使用CMS)。
- 例如:
-XX:+UseConcMarkSweepGC
表示使用CMS + Serial Old垃圾回收器組合。
- -XX:+UseG1GC:使用G1垃圾回收器。
- 例如:
-XX:+UseG1GC
表示使用G1垃圾回收器。
垃圾回收日誌
- -XX:+PrintGC:開啟列印GC資訊。
- -XX:+PrintGCDetails:列印詳細的GC資訊。
- -XX:+PrintGCTimeStamps:列印GC的時間戳。
- -XX:+PrintGCDateStamps:列印GC的日期和時間。
- -Xloggc::將GC日誌輸出到指定檔案。
- 例如:
-Xloggc:/path/to/gc.log
表示將GC日誌輸出到/path/to/gc.log
檔案。
其他常用引數
- -XX:MaxPermSize:設定永久代(PermGen)的最大大小(Java 8之前)。
- 例如:
-XX:MaxPermSize=256m
表示永久代最大大小為256MB。
- -XX:MaxMetaspaceSize:設定元空間(Metaspace)的最大大小(Java 8及以後)。
- 例如:
-XX:MaxMetaspaceSize=256m
表示元空間最大大小為256MB。
- -XX:MaxDirectMemorySize:設定直接記憶體的最大大小。
- 例如:
-XX:MaxDirectMemorySize=256m
表示直接記憶體最大大小為256MB。
- -XX:G1HeapRegionSize:設定G1垃圾回收器的區域大小。
- 例如:
-XX:G1HeapRegionSize=16m
表示G1垃圾回收器的區域大小為16MB。
- -XX:InitiatingHeapOccupancyPercent:設定觸發G1垃圾回收的堆佔用率閾值。
- 例如:
-XX:InitiatingHeapOccupancyPercent=70
表示當堆佔用率達到70%時觸發G1垃圾回收。
- -XX:+HeapDumpOnOutOfMemoryError:在發生OutOfMemoryError時生成堆轉儲檔案。
- 例如:
-XX:+HeapDumpOnOutOfMemoryError
表示在發生OutOfMemoryError時生成堆轉儲檔案。
- -XX:HeapDumpPath=:指定堆轉儲檔案的儲存路徑。
- 例如:
-XX:HeapDumpPath=/path/to/heapdump.hprof
表示堆轉儲檔案儲存路徑為/path/to/heapdump.hprof
。