Java虚拟机(JVM)是Java程序运行的核心,通过设置不同的JVM参数,可以对Java程序的性能、调试和安全等方面进行优化和管理。
一.以下是常用的JVM参数和注释:
1. -Xms<size>:设置JVM的初始堆大小。
2. -Xmx<size>:设置JVM的最大堆大小。
3. -Xmn<size>:设置JVM的新生代大小,通常建议设置为整个堆大小的1/3或1/4。
4. -XX:PermSize=<size>:设置JVM的永久代初始大小。
5. -XX:MaxPermSize=<size>:设置JVM的永久代最大大小。
6. -XX:MaxNewSize=<size>:设置JVM的新生代最大大小。
7. -XX:SurvivorRatio=<ratio>:设置JVM中Eden区和Survivor区的比例。
8. -XX:+UseConcMarkSweepGC:启用并发标记清除垃圾回收器。
9. -XX:+UseParallelGC:启用并行垃圾回收器。
10. -XX:+PrintGCDetails:打印垃圾收集器的详细信息。
11. -XX:-UseGCOverheadLimit:关闭垃圾回收器超过98%时抛出异常的限制。
12. -XX:CompileThreshold=<num>:设置JIT编译器的触发阈值。
13. -XX:+HeapDumpOnOutOfMemoryError:在发生OutOfMemoryError时,自动dump出JVM中的内存信息。
14. -XX:+PrintCommandLineFlags:打印JVM启动时的参数信息。
二.注:
1. -Xms和-Xmx参数通常设置为相同的值,以避免JVM在运行时重新调整堆大小,影响性能。
2. -XX:PermSize和-XX:MaxPermSize参数仅适用于Java 8及之前的版本,Java 8之后使用的是元数据区(Metaspace)。
3. -XX:+UseConcMarkSweepGC和-XX:+UseParallelGC参数通常用于提高Java应用程序的吞吐量。
4. -XX:+PrintGCDetails和-XX:+HeapDumpOnOutOfMemoryError参数通常用于分析JVM的垃圾回收情况和内存泄漏等问题。
5. -XX:+PrintCommandLineFlags参数可以打印JVM启动时使用的所有参数信息,方便调试和管理。