JVM分为三种参数类型
一:标配类型
-version
-help
java -showversion
二:X类型
-Xint 解释执行
-Xcomp 第一次使用就编译成本地代码
-Xmixed 混合模式
执行命令
java -Xint -version
java -Xcomp -version
java -Xmined -version
三:XX类型(重点)
1.Boolean类型
公式: -XX:+ 或者 - 某个属性
+表示开启
-表示关闭
Case
一:是否打印GC的收集细节
二:是否使用串行垃圾回收器
实例一:在idea添加相应的配置,在命令框里面查看是否打印GC的收集
在idea里面添加jvm运行参数
run -> Edit Configurations
jps 查看java的后台进程
jinfo 查看正在运行的java程序的各种信息,查看是否开启
实例:
#jinfo -flag 为标配
jinfo -flag PrintGCDetails 进程编号
2.KV设置类型
公式:
-XX: 属性值key=属性值value
case
#元空间
-XX:MetaspaceSize=128m
#最大持续空间
-XX:MaxTenuringThreshold=15
实例:
#查看jvm的元空间
jinfo flag MetaspaceSize 进程编号
3.jinfo设置,如何查看当前运行程序的设置
#公式 查看进程的单个配置
jinfo flag 配置项 进程编号
#查看进程所有的配置信息
jinfo flags 进程编号
4.两个经典的参数
#这两个的大小是物理内存的六十四分之一
-Xms:相当于-XXInitialHeapSize
-Xmx:等价于-XXMaxHeapSize
查看JVM的默认值
一:-XXPrintFlagsInitial:主要查看初始默认值(很重要)
#公式1
java -XX:+PrintFlagsInitial -version
#公式2
java -XX:+PrintFlagsInitial
#查看结果
如果是 = 表示为初始值,没有修改
如果是 := 表示已经修改的参数
二:-XXPrintFlagsFinal(主要查看修改更新)
#公式1
java -XX:+PrintFlagsFinal -version
#公式2
java -XX:+PrintFlagsFinal
三:PrintFlagsFinal举例,运行java命令的同时打印出参数
#公式3 T:运行的java类的名称
java -XX:+PrintFlagsFinal -XX:修改配置项=修改配置项的值 T
四:-XX:+PrintCommandLineFlags:这个命令最方便的是看最后一个参数-XX:+UseParallelGC:表示本次jvm默认的垃圾回收机制
#公式1
java -XX:+PrintCommandLineFlags -version
java8的元空间与永久代的区别