Java 8 支持许多 JVM 参数,这些参数用于控制 Java 虚拟机的行为,包括内存管理、调试、性能优化等。下面是一些常用 JVM 参数的列表,它们的作用和适用场景。
| 参数 | 作用 | 适用场景 | 参数值说明 |
|---|---|---|---|
-Xmx |
设置 JVM 最大堆内存大小 | 控制应用程序的最大内存使用量,以防止OutOfMemoryError |
如:-Xmx1024m 表示最大堆内存为 1024MB |
-Xms |
设置 JVM 初始堆内存大小 | 优化启动性能,减少内存的频繁分配 | 如:-Xms512m 表示初始堆内存为 512MB |
-Xmn |
设置新生代内存大小 | 优化垃圾回收性能,配合大型应用程序 | 如:-Xmn256m 表示新生代内存为 256MB |
-XX:PermSize |
设置永久代初始大小 | 控制类元数据存储空间(Java 8 中替代为 Metaspace) | 如:-XX:PermSize=128m |
-XX:MaxPermSize |
设置永久代最大大小 | 限制类元数据存储空间的最大值(Java 8 中替代为 MaxMetaspaceSize) | 如:-XX:MaxPermSize=256m |
-XX:MetaspaceSize |
设置 Metaspace 初始大小(Java 8 中取代 PermGen) | 控制类元数据区域的初始大小 | 如:-XX:MetaspaceSize=128m |
-XX:MaxMetaspaceSize |
设置 Metaspace 的最大大小 | 限制类元数据区域的最大值 | 如:-XX:MaxMetaspaceSize=256m |
-Xss |
设置每个线程的堆栈大小 | 控制线程堆栈使用量,适用于大量线程的应用 | 如:-Xss512k |
-XX:+UseG1GC |
启用 G1 垃圾收集器 | 提高垃圾收集性能,适合大内存应用 | 适用于需要低停顿时间的应用 |
-XX:+UseParallelGC |
启用并行垃圾收集器 | 提高垃圾收集效率,适用于多核 CPU | 适用于需要高吞吐量的应用 |
-XX:+UseConcMarkSweepGC |
启用 CMS 垃圾收集器 | 降低垃圾收集的停顿时间 | 适合需要快速响应时间的应用 |
-XX:+PrintGCDetails |
打印 GC 详细信息 | 用于调试和优化 GC 性能 | 输出垃圾回收的详细日志 |
-XX:+PrintGCTimeStamps |
打印 GC 的时间戳 | 分析 GC 对应用响应时间的影响 | 结合 GC 日志进行时间分析 |
-XX:+HeapDumpOnOutOfMemoryError |
在出现OutOfMemoryError时生成堆转储 |
用于故障排查 | 生成堆内存快照供分析 |
-D |
设置系统属性 | 自定义和传递应用程序的系统属性 | 如:-DpropertyName=value |
注:这些参数根据具体应用的需求和环境进行设置。其中,有些参数如-XX:PermSize和-XX:MaxPermSize在 Java 8 后被 Metaspace 相关参数所替代,因此不推荐在 Java 8 中使用。合理配置这些参数可以优化 JVM 的性能和应用程序的稳定性。
浙公网安备 33010602011771号