堆内存设置
- -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
。
示例
java -Xms2g -Xmx2g -XX:NewRatio=4 -XX:SurvivorRatio=8 -XX:+UseG1GC -XX:MaxMetaspaceSize=256m -XX:MaxDirectMemorySize=256m -XX:InitiatingHeapOccupancyPercent=70 -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/path/to/gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/heapdump.hprof -jar myapp.jar
标签:例如,G1,哪些,回收,XX,调优,GC,垃圾,jvm
From: https://www.cnblogs.com/89564f/p/18536503