本次主要内容:
如何查看参数标准参数-X参数-XX参数Boolean类型非Boolean类型其他参数如何设置参数单位换算JVM常见参数和含义
java -XX:+PrintFlagsFinal -version > flags.txt
在IDEA中
想要的JVM参数在这里都能找到。
例如:执行java -version
-X***的属于非标准参数,意思就是在不同JDK
版本汇总可能会变动。
非标准化参数,相对不稳定,主要用于JVM
调优和Debug,使用频率最高的参数。
格式:-XX:[+-]name +或-表示启用或者禁用name属性比如:
-XX:+UseConcMarkSweepGC
表示启用CMS
类型的垃圾回收器-XX:+UseG1GC
表示启用G1类型的垃圾回收器
格式:-XX:name=value表示name属性的值是value比如:-XX:MaxGCPauseMillis
=500
下面举例几个:
-Xms1000m
等价于-XX:InitialHeapSize
=1000m-Xmx1000m
等价于-XX:MaxHeapSize
=1000m-Xss100k
等价于-XX:ThreadStackSize
=100kjava -XX:+UseG1GC xxx.jar
1Byte(字节)=8bit(位)
1KB=1024Byte(字节)
1MB=1024KB
1GB=1024MB
1TB=1024GB
示例:
设置堆内存大小和参数打印-Xmx100M -Xms100M -XX:+PrintFlagsFinal
查询+PrintFlagsFinal的值:=true
查询堆内存大小MaxHeapSize:= 104857600
值得注意的是"="表示默认值,":="表示被用户或JVM修改后的值
换算104857600(Byte)/1024=102400(KB)102400(KB)/1024=100(MB)所以104857600是字节单位