1.标准参数
不会随着jdk的版本变化而变化,以“-”开头,例如 java -version;java -jar;可以通过java help查看
-Xms4g:初始化的堆大小 ms:memory start 也可以 -XX:InitialHeapSize
-Xmx4g:堆内存的最大值 mx:memory max 也可以 -XX:MaxHeapSize
-Xmn1200m:年轻代大小 占3/8左右
-Xss512k:每个线程的堆栈大小,减少这个值 可以生成更多的线程,设置为3k-5k
-XX:NewRatio=4: 年轻代/老年代 年轻的:老年代 1:4 也就是1/5
-XX:ServivorRatio=8 年轻代中的eden与suvivor的比值,两个servivor:eden=2:8 一个survivor占年轻代的1/10
-XX:PermSize=100m :初始化永久代大小
-XX:MaxPermSize: 最大永久代大小
-XX:MaxTenuringThreshold=15 :设置垃圾最大年龄
-XX:MaxDirectMomorySize=1G :直接内存 Direct buffer memory异常
-XX:+DisableExplicitGC:禁止显示的调用System.gc()方法
2.非标准参数
以“-X”开头,是标准参数的扩展,可能随着jvm的版本变化而变化。可以通过java -X 检索所有非标准参数,例如新生代大小-Xmn,-Xms,-Xmx
3.不稳定参数
主要用于jvm调优和debug ,以“-XX”开头,对jvm的性能影响很大
不稳定参数的语法规则:
- 布尔类型的参数 例如-XX:+<option>'+' 启用改选项
例如-XX:-<option>'-' 关闭改选项 - 数字类型参数 例如-XX:+<option>=<number>
- 字符串类型参数 例如XX:HeapDumpPath=./dump.core
3.1 性能参数
用于jvm的性能调优和内存分配控制,例如内存大小
3.2行为参数
用于改变jvm的基础行为,例如GC的方式和算法的选择
3.3 调试参数
用于监控、打印以及输出jvm信息