jvm参数
JVM参数
JVM参数分为三类:
- 标准参数:
- -help
- -version
- -X参数(非标准参数)
- -Xint
- -Xcomp
- -XX参数(非标准参数,使用频率高)
- -XX:newSize
- -XX:+UseSerialGC
标准参数,一般都是很稳定的,在JVM未来的版本中不会改变,可以使用java -help
命令检索出所有标准参数。
可以使用java -X
打印出所有的非标准参数。
JVM运行的模式
- -Xint
(interpreted)解释模式执行,强制JVM执行所有的字节码,会降低运行速度,通常是10倍或者更多。 - -Xcomp
和int相反,JVM在第一次使用时会把所有字节码编译成本地代码,从而带来更大程度的优化。然而很多时候也会有一些性能损失,原因是-Xcomp没有让JVM启用 JIT编译器的全部功能。JIT编译器可以对是否需要编译做判断,如果对所有代码都执行编译的话,对于只执行一次的代码就没有意义。 - -Xmixed
混合模式,将解释模式和编译模式混合使用,由JVM决定,是JVM默认的模式,也是推荐模式。
-XX参数
-XX主要用于JVM调优和debug。使用由两种模式,boolean类型和非boolean类型。
- boolean
- 格式:
-XX:[+-]<name>
表示启用或者禁用name属性。 - 如:`-XX:+DisableExplicitGC表示禁用手动调用gc操作,system.gc()无效。
- 格式:
- 非boolean
- 格式:
-XX:<name>=<value>
表示将name属性的值设置为value。 - 如:
-XX:NewRatio=1
表示新生代和老年代的比值。-Xms与-Xmx参数
- 格式:
- -Xms设置jvm的堆内存初始化大小。等价于
-XX:InitialHeapSize
。 - -Xmx参数设置堆内存的最大大小。等价于
-XX:MaxHeapSize
-XX:+PrintFlagsFinal
打印JVM运行时的参数,
-XX:+PrintGC or -verbose:gc 打印出关于堆heap和每次收集的GC信息。