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 的性能和应用程序的稳定性。

posted on 2024-11-19 16:41  卡米i  阅读(8)  评论(0)    收藏  举报