JVM基本参数

JVM 参数类型

  • 标注参数 [在 JVM里 基本不变的,相对比较稳定]
    -sever
    -help
    -client
    -version
    -showversion
    -cp
    -classpath

  • x 参数 [非标准化参数,就是在JVM 各个版本里可能会变]
    -Xint : 解释执行
    -Xcomp : 第一次使用就编译成本地代码
    -Xmixed : 混合模式,JVM 自己决定是否编译成本地代码

打开控制台,执行命令 java -version, [前提是安装了 jdk]可以看到 其默认是 mixed mode ,
java -xint -version 就可以看到是解释执行模式
x 参数平时用的不是很多

  • xx 参数 [xx 参数用的是非常多的参数, 同样是非标准化参数,主要用来 JVM 调优 和Debug]
    主要有2 类

1.boolean 类型
格式 : -XX:[+ -] < name > 表示启用或者禁用 name 属性
例如:-XX: +UseG1GC 启用 G1收集器
2.非boolean 类型
格式:-XX: < name > = < value >表示 name 属性的值 是 value
例如:-XX:MaxGCPauseMillis=500 表示GC 的最大停顿时间是 500 毫秒

做过Java 开发的朋友应该都设置过 -Xms -Xmx,它们同样是 -xx 参数
-Xms 等价于 -XX:InitialHeapSize 初始化的大小
-Xmx等价于-xx: MaxHeapSize 最大的大小
-xss xx 参数 ,用于设置 堆栈大小 ,Tomcat 默认是 1024 k,当启动一个 tomcat 之后 ,控制台输入 jinfo -flag ThreadStackSize Tomcat 进程ID 例如 : jinfo -flag ThreadStackSize 23455, 就可以看到输出 -XX:ThreadStackSize=1024

查看JVM 运行时参数的值

这对于JVM 调优很重要。

  • -XX: +PrintFlagsInitial 查看一些初始值 1️⃣
  • -XX: + PrintFlagsFinal 查看最终的值 2️⃣
    控制台输入 java -XX:+PrintFlagsFinal -version, 控制台会输出一堆的数据 ,可以看到有 =, :=,两者区别是 前者是 默认的值,后者是设置的值 ,如图
    在这里插入图片描述
  • -xx:+UnlockExprimentaIVMOptions 解锁实验参数 ,这是是说 JVM 里的参数不是都可以通过1️⃣2️⃣的两个来直接赋值,需要解锁相关之后,才能进行复制操作 。
  • -XX: + PrintCommandLineFlags打印命令行参数
  • -XX: + UnlockDiagnosticVMOptions 解锁诊断参数

jps
jps 是用来专门查看 Java 进程的,相关参数,可以在下面的文档里查阅

jps ,jinfo ,jmap 参数文档

猜你喜欢

转载自blog.csdn.net/Andy86869/article/details/83217169