JVM(Java Virtual Machine)参数用于调整 JVM 的行为和性能,可分为标准参数、非标准参数和非稳定参数。以下是一些常见的 JVM 参数及其用途:
非标准参数
以-X开头,不同版本的 JVM 可能会有所不同。
堆内存相关
-Xms:设置 JVM 堆内存的初始大小。例如,-Xms512m表示初始堆内存为 512MB。
java -Xms512m YourMainClass
-Xmx:设置 JVM 堆内存的最大大小。通常建议将-Xms和-Xmx设置为相同的值,以避免堆内存动态调整带来的性能开销。例如,-Xmx1024m表示最大堆内存为 1024MB。
java -Xms1024m -Xmx1024m YourMainClass
-Xmn:设置新生代的大小。新生代是堆内存中用于存放新创建对象的区域,合理设置新生代大小可以提高垃圾回收效率。例如,-Xmn256m表示新生代大小为 256MB。
java -Xms512m -Xmx512m -Xmn256m YourMainClass
栈内存相关
-Xss:设置每个线程的栈内存大小。栈内存用于存储线程的局部变量、方法调用等信息。例如,-Xss256k表示每个线程的栈内存大小为 256KB。
java -Xss256k YourMainClass
非稳定参数
以-XX开头,这类参数在不同版本的 JVM 中可能会有较大变化,使用时需要谨慎。
垃圾回收相关
-XX:+UseSerialGC:启用串行垃圾回收器,适用于单 CPU 环境和对内存使用要求不高的场景。
java -XX:+UseSerialGC YourMainClass
-XX:+UseParallelGC:启用并行垃圾回收器,多个线程同时进行垃圾回收,提高垃圾回收效率,适用于多 CPU 环境和对吞吐量要求较高的场景。
java -XX:+UseParallelGC YourMainClass
-XX:+UseConcMarkSweepGC:启用并发标记清除(CMS)垃圾回收器,在大部分时间内可以与应用程序并发执行,减少垃圾回收时的停顿时间,适用于对响应时间要求较高的场景。
java -XX:+UseConcMarkSweepGC YourMainClass
-XX:+UseG1GC:启用 G1(Garbage First)垃圾回收器,将堆内存划分为多个大小相等的区域,优先回收垃圾最多的区域,适用于大内存、多 CPU 的环境。
java -XX:+UseG1GC YourMainClass
-XX:+PrintGCDetails:打印详细的垃圾回收信息,包括每次垃圾回收前后各代内存的使用情况、垃圾回收时间等,有助于分析垃圾回收性能。
java -XX:+PrintGCDetails YourMainClass
元空间相关
-XX:MetaspaceSize:设置元空间的初始大小,当元空间使用的内存达到该值时,会触发一次垃圾回收来释放未使用的类元数据。
java -XX:MetaspaceSize=128m YourMainClass
-XX:MaxMetaspaceSize:设置元空间的最大大小,默认值为无限制。
java -XX:MaxMetaspaceSize=256m YourMainClass
其他
-XX:+DisableExplicitGC:禁用显式的垃圾回收,即程序中调用System.gc()和Runtime.getRuntime().gc()方法将不会触发垃圾回收操作。
java -XX:+DisableExplicitGC YourMainClass
9154

被折叠的 条评论
为什么被折叠?



