你说你做过JVM调优和参数配置,请问如何查看JVM系统默认值

JVM的参数类型

标配参数 (了解)

  1. -version
  2. -help
  3. java -showversion

x参数(了解)

  1. -Xint:解释执行
  2. -Xcomp:第一次使用就编译成本地代码
  3. -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

你说你做过JVM调优和参数配置,请问如何查看JVM系统默认值_第1张图片

  • 编辑配置,开启GC收集细节

你说你做过JVM调优和参数配置,请问如何查看JVM系统默认值_第2张图片

你说你做过JVM调优和参数配置,请问如何查看JVM系统默认值_第3张图片

是否使用串行垃圾回收器

  • -XX:-UseSerialGC
  • -XX:+UseSerialGC

KV设值类型

公式

-XX:属性key=属性值value

Case

-XX:MetaspaceSize=128m : 元空间大小
-XX:MaxTenuringThreadhold=15

你说你做过JVM调优和参数配置,请问如何查看JVM系统默认值_第4张图片

你说你做过JVM调优和参数配置,请问如何查看JVM系统默认值_第5张图片

jinfo举例,如何查看当前运行程序的配置

公式
jinfo -flag 配置项 进程编号

  • case1

你说你做过JVM调优和参数配置,请问如何查看JVM系统默认值_第6张图片

  • case2

你说你做过JVM调优和参数配置,请问如何查看JVM系统默认值_第7张图片

Non-default Vm: JVM做的
Command line: 人工添加的

  • case3

你说你做过JVM调优和参数配置,请问如何查看JVM系统默认值_第8张图片

JVM的XX参数之XmsXmx坑题

两个经典参数:-Xms和-Xmx

这个你如何解释?

-Xms:等价于-XX:InitialHeapSize
-Xmx:等价于-XX:MaxHeapSize

盘点家底查看JVM默认值

-XX:+PrintFlagsInitial

作用

主要查看初始默认

公式

  1. java -XX:+PrintFlagsInitial -version
  2. java -XX:+PrintFlagsInitial

你说你做过JVM调优和参数配置,请问如何查看JVM系统默认值_第9张图片

-XX:+PrintFlagsFinal

作用

主要查看修改更新

公式

  1. java -XX:+PrintFlagsFinal -version

你说你做过JVM调优和参数配置,请问如何查看JVM系统默认值_第10张图片

:= 和 =区别

= : jvm默认加载的
:= : jvm或者用户修改过的

PrintFlagsFinal举例,运行java命令的同时打印出参数

  • 初始元空间大小,注意这时候没有 :=,说明是jvm默认值
    uintx MetaspaceSize = 21807104

  • 运行java 修改元空间大小

你说你做过JVM调优和参数配置,请问如何查看JVM系统默认值_第11张图片

你说你做过JVM调优和参数配置,请问如何查看JVM系统默认值_第12张图片

运行java的时候修改元空间大小为512M

-XX:+PrintCommandLineFlags

作用

打印命令行参数

公式

java -XX:+PrintCommandLineFlags -version

你说你做过JVM调优和参数配置,请问如何查看JVM系统默认值_第13张图片

你可能感兴趣的:(jvm,jvm)