jvm中的可选参数分为以下三类
- 标准选项:以“-”开头的选项
- 非标准选项:以“-X”开头的选项
- 不稳定选项:以“-XX:”开头的选项
1. 标准选项
选项 | 说明 |
---|---|
-version | 输出jdk版本 |
-cp | 目录和 zip/jar 文件的类搜索路径 |
-classpath | 目录和 zip/jar 文件的类搜索路径,用 ; 分隔的目录, JAR 档案和 ZIP 档案列表, 用于搜索类文件 |
-D<名称>=<值> | 设置系统属性 |
-X | 输出非标准选项的帮助 |
2. 非标准选项
选项 | 说明 |
---|---|
-xms<size> | 设置初始 Java 堆大小(字节)。此值必须是1024的倍数且大于1 MB。附加字母k或k表示千字节,m或m表示兆字节,g或g表示千兆字节。 |
-Xmx<size> | 以字节为单位指定内存分配池的最大大小(以字节为单位)。此值必须是1024的倍数且大于2 MB。附加字母k或k表示千字节,m或m表示兆字节,g或g表示千兆字节。默认值是根据系统配置在运行时选择的。对于服务器部署,-xms和-Xmx通常设置为相同的值。 |
-Xss<size> | 设置 Java 线程堆栈大小(以字节为单位)。附加字母k或k表示KB,m或m表示MB,g或g表示GB。等同于 -XX:ThreadStackSize. |
-Xmn<size> | 设置年轻代堆的初始大小和最大大小(字节)。附加字母k或k表示千字节,m或m表示兆字节,g或g表示千兆字节。Oracle建议将年轻代的大小保持在堆总大小的一半到四分之一之间。 |
3. 不稳定选项
对于不稳定选项的设置可分为以下三种情况
- 布尔选项
- 开启选项 -XX:+<option>
- 禁止选项 -XX:-<option>
- 数值选项
- -XX:<option>=<number>
- 字符串选项
- -XX:<option>=<string>
选项 | 说明 |
---|---|
-XX:ThreadStackSize=size | 设置线程堆栈大小(以字节为单位)。附加字母k或k表示千字节,m或m表示兆字节,g或g表示千兆字节。等同 -Xss |
XX:MaxDirectMemorySize=size | 设置新I/O的直接缓冲区分配最大总大小(以字节为单位)。附加字母k或k表示千字节,m或m表示兆字节,g或g表示千兆字节。默认情况下,大小设置为0,这意味着JVM会自动选择NIO直接缓冲区分配的大小。 |
-XX:+TraceClassLoading | 启用类加载时的跟踪。默认情况下,此选项处于禁用状态,并且不跟踪类。 |
-XX:+HeapDumpOnOutOfMemoryError | 当出现java.lang.OutOfMemoryError异常时,通过使用堆探查器(HPROF)将Java堆转储到当前目录中的文件。可以使用-XX:HeapDumpPath选项显式设置堆转储文件路径和名称。默认情况下,当抛出OutOfMemoryError异常时,此选项处于禁用状态,堆不会转储。 |
-XX:HeapDumpPath=path | 设置-XX:+HeapDumpOnOutOfMemoryError选项时,设置用于写入堆探查器(HPROF)提供的堆转储的路径和文件名。默认情况下,该文件在当前工作目录中创建,并命名为java_pid.hprof文件其中pid是导致错误的进程的标识符。 |
-XX:InitialHeapSize=size | 设置内存分配池的初始大小(字节)。此值必须为0或1024的倍数且大于1 MB。附加字母k或k表示千字节,m或m表示兆字节,g或g表示千兆字节。默认值是根据系统配置在运行时选择的。如果将此选项设置为0,则初始大小将设置为分配给旧代和年轻代的大小之和。年轻一代的堆大小可以使用-XX:NewSize选项设置。 |
-XX:MaxNewSize=size | 设置年轻代堆的最大大小(字节) |
-XX:NewSize=size | 设置年轻代堆的初始大小(字节)。附加字母k或k表示千字节,m或m表示兆字节,g或g表示千兆字节。等同-Xmn |
-XX:MaxHeapSize=size | 设置内存分配池的最大大小(以“字节”为单位)。此值必须是1024的倍数且大于2 MB。附加字母k或k表示千字节,m或m表示兆字节,g或g表示千兆字节。默认值是根据系统配置在运行时选择的。等效于-Xmx |
-XX:MaxMetaspaceSize=size | 设置可为类元数据分配的最大本机内存量。默认情况下,大小不受限制。应用程序的元数据量取决于应用程序本身、其他正在运行的应用程序以及系统上可用内存的数量。 |
-XX:ParallelGCThreads=threads | 设置年轻和旧代中用于并行垃圾收集的线程数。默认值取决于JVM可用的cpu数量。 |
-XX:+UseParallelGC | 允许使用并行清除垃圾收集器(也称为吞吐量收集器)通过利用多个处理器。由默认情况下,此选项处于禁用状态,并且根据机器的配置和JVM的类型自动选择收集器。如果启用了-XX:+usepalleloldgc选项,则会自动启用它,除非您显式禁用它。 |
-XX:+UseParNewGC | 允许在年轻一代中使用并行线程进行收集。默认情况下,此选项处于禁用状态。当您设置-XX:+useConMarkSweepGC选项时,它将自动启用。JDK 8中不赞成使用-XX:+UseParNewGC选项而不使用-XX:+useConMarkSweepGC选项。 |
-XX:+PrintGC | 允许在每个GC打印消息。默认情况下,此选项处于禁用状态。 |
-XX:+PrintGCDetails | 支持在每个GC打印详细消息。默认情况下,此选项处于禁用状态。 |
-XX:+PrintGCTimeStamps | 允许在每个GC打印时间戳。默认情况下,此选项处于禁用状态。 |
更多参数请参考以下链接:
https://docs.oracle.com/en/java/javase/11/tools/java.html
https://www.oracle.com/java/technologies/javase/vmoptions-jsp.html
https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html#BABHDABI
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。