今天来熟悉一下,关于JVM
调优常用的一些参数。
X或者XX开头的都是非标准化参数
意思就是说标准化参数不会变,非标准化参数可能在每个JDK
版本中有所变化,但是就目前来看X开头的非标准化的参数改变的也是非常少。
格式:-XX:[+-]<name> 表示启用或者禁用name属性。
例子:-XX:+UseG1GC(表示启用G1垃圾收集器)
-XX:+PrintCommandLineFlags
查看当前JVM
设置过的相关参数:
JVM参数分类
根据JVM
参数开头可以区分参数类型,共三类:“-
”、“-X
”、“-XX
”,
标准参数(-):所有的JVM实现都必须实现这些参数的功能,而且向后兼容;
例子:-verbose:class
,-verbose:gc
,-verbose:jni……
非标准参数(-X):默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;
例子:Xms20m
,-Xmx20m
,-Xmn20m
,-Xss128k……
非Stable参数(-XX):此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用;
例子:-XX:+PrintGCDetails
,-XX:-UseParallelGC
,-XX:+PrintGCTimeStamps……
堆参数设置
-Xms` 初始堆大小,ms是memory start的简称 ,等价于`-XX:InitialHeapSize``-Xmx` 最大堆大小,mx是memory max的简称 ,等价于参数`-XX:MaxHeapSize
注意:在通常情况下,服务器项目在运行过程中,堆空间会不断的收缩与扩张,势必会造成不必要的系统压力。
所以在生产环境中,
JVM
的Xms
和Xmx
要设置成大小一样的,能够避免GC
在调整堆大小带来的不必要的压力。
-XX:NewSize&