JVM的参数类型
标配参数 (了解)
- -version
- -help
- java -showversion
x参数(了解)
- -Xint:解释执行
- -Xcomp:第一次使用就编译成本地代码
- -Xmixed:混合模式
xx参数(重点)
Boolean类型
公式
-XX:+或者-某个属性值
+表示开启 -表示关闭
如何查看一个正在运行中的java,它的jvm参数是否开启?具体参数是多少
jps: 查看java后台进程
jinfo: 正在运行的java程序后台信息
eg:jinfo -flag PrintGCDetails 进程号
case
是否打印GC收集细节
- -XX:-PrintGCDetails --> 没有开启
- -XX:+PrintGCDetails —> 开启
eg: 以IDEA为准,演示没有加JVM参数 -XX:+PrintGCDetails
- 编辑配置,开启GC收集细节
是否使用串行垃圾回收器
- -XX:-UseSerialGC
- -XX:+UseSerialGC
KV设值类型
公式
-XX:属性key=属性值value
Case
-XX:MetaspaceSize=128m : 元空间大小
-XX:MaxTenuringThreadhold=15
jinfo举例,如何查看当前运行程序的配置
公式
jinfo -flag 配置项 进程编号
- case1
- case2
Non-default Vm: JVM做的
Command line: 人工添加的
- case3
JVM的XX参数之XmsXmx坑题
两个经典参数:-Xms和-Xmx
这个你如何解释?
-Xms:等价于-XX:InitialHeapSize
-Xmx:等价于-XX:MaxHeapSize
盘点家底查看JVM默认值
-XX:+PrintFlagsInitial
作用
主要查看初始默认
公式
- java -XX:+PrintFlagsInitial -version
- java -XX:+PrintFlagsInitial
-XX:+PrintFlagsFinal
作用
主要查看修改更新
公式
- java -XX:+PrintFlagsFinal -version
:= 和 =区别
=
: jvm默认加载的
:=
: jvm或者用户修改过的
PrintFlagsFinal举例,运行java命令的同时打印出参数
-
初始元空间大小,注意这时候没有
:=
,说明是jvm默认值
uintx MetaspaceSize = 21807104 -
运行java 修改元空间大小
运行java的时候修改元空间大小为512M
-XX:+PrintCommandLineFlags
作用
打印命令行参数
公式
java -XX:+PrintCommandLineFlags -version