以 -X 开头的是非标准选项,即不能保证被所有的 JVM 实现所支持,在后续的 JDK 版本中有变更的话不另行通知。
以 -XX开头的是不稳定的、不建议使用的选项,同样的,在后续的 JDK 版本中有变更的话不另行通知。
参数名称 | 描述 |
---|---|
虚拟机内存控制 | |
-Xms<size> | 设置 Java 堆内存初始值 |
-Xmx<size> | 设置 Java 堆内存最大值 |
-Xmn<size> | 设置新生代大小 |
-XX:PermSize | 设置持久代内存初始值 |
-XX:MaxPermSize | 设置持久代内存最大值 |
内存溢出堆内存转储控制 | |
-XX:+HeapDumpOnCtrlBreak | 交互式获取 Heap Dump:在控制台按下快捷键 [Ctrl + Break] 时,会生成 Heap Dump 文件 |
-XX:+HeapDumpOnOutOfMemoryError |
发生 OutOfMemoryError 时自动生成 Heap Dump 文件 |
-XX:HeapDumpPath | 设置 Heap Dump 文件存储路径 |
GC日志相关 | |
-XX:+PrintGCDetails | 打印 gc 日志(比 -XX:+PrintGC 更详细一些) |
-XX:+PrintGCTimeStamps |
打印GC发生的时间,格式如:10.298,表示jvm启动以来经过的秒数; 可使用 -XX:+PrintGCTimeStamps 改变时间格式为 2019-03-19T14:06:33.359+0800 |
-XX:+UseGCLogFileRotation | 开启GC日志文件滚动策略 |
-XX:NumberOfGCLogFiles | 设置日志文件个数,必须大于等于 1;如:-XX:NumberOfGCLogFiles=3,这样设置后,日志文件名样式为:gc.log.0、gc.log.1 ... |
-XX:GCLogFileSize |
设置滚动日志文件的大小,必须大于8K;当日志文件大于该参数值时,将写入新文件; 如:-XX:GCLogFileSize=1M |
-Xloggc | 指定GC日志输出文件;如:-Xloggc:D:\gc.log |
查看 jvm 可设置的参数及其值 | |
-XX:+PrintFlagsInitial | 显示 jvm 所有可设置的参数及其默认值 |
-XX:+PrintFlagsFinal | 显示 jvm 所有可设置的参数及其当前值。在输出结果中,覆盖了默认值的参数,使用 := 标识 |
-XX:+PrintCommandLineFlags |
仅显示 jvm 中与默认值不同的参数及其值 |
垃圾收集器相关 | |
-XX:+UseParallelGC | 虚拟机运行在 Server 模式下的默认值;打开此开关后,使用 Parallel Scavenge + Serial Old 的组合进行垃圾收集 |