Java面试题集锦(13):JVM调优和参数配置,请问如何盘点查看JVM系统默认值

JVM的参数类型

1.标配参数

从JDK1.0到Java12,一直存在。
-version
-help
java -showversion

2.x参数

-Xint:解释执行
在这里插入图片描述

-Xcomp:第一次使用就编译成本地代码
在这里插入图片描述

-Xmixed:混合模式(先编译再执行)
在这里插入图片描述

3.xx参数(重点)
(1)Boolean类型(开启/关闭)

🌟一般公式:
-XX:+(或者-)某个属性值
+表示开启,-表示关闭

🌟Case:
是否打印GC收集细节?

  • -XX:+PrintGCDetails
  • -XX:-PrintGCDetails

是否使用串行垃圾回收器?

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

🌟如何查看一个正在运行中的java程序,它的某个jvm参数是否开启?具体值是多少?
jps:查看正在运行中的java进程。jps -l 得到进程号。
jinfo:查看正在运行的java进程的各种信息。jinfo -flag PrintGCDetails 进程号jinfo -flag是标配,后面加的是具体参数和进程号。
在这里插入图片描述

(2)KV设值类型(Key-Value键值对)

🌟一般公式:
-XX:属性key = 属性值value

🌟Case:
设置元空间大小?

  • -XX: MetaspaceSize=128m
    新生代需要经历多少次GC晋升到老年代中的最大阈值?
  • -XX: MaxTenuringThreshold=15
    在这里插入图片描述
(3)jinfo举例,如何查看当前运行程序的配置

公式:jindo -flag 配置项 进程编号
进程编号用jps获得

InitialHeapSize 初始化的堆大小

如果想一次性查多个配置项,则:jinfo -flags 进程号

(4)题外话

有-Xms和-Xmx这两个经典参数如何解释(为什么没有+/=,算XX参数还是X参数)?
注:-Xms1024m -Xmx1024m,不需要写+和=。
答:
-Xms 就等价于-XX:InitialHeapSize 初始化的堆内存 (初始化为1/64系统内存)
-Xmx 就等价于-XX:MaxHeapSize 堆内存的最大值 (初始化为1/4系统内存)
-Xms和-Xmx只是别名

4.JVM盘点家底查看初始默认值
第一种方法:

jinfo -flag 具体参数 进程编号
jinfo -flags 进程编号

第二种方法:

-XX:PrintFlagsInitial
主要是查看初始默认值
公式:

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

-XX:PrintFlagsFinal
主要是查看修改更新
公式:

  1. java -XX:+PrintFlagsFinal -version
  2. java -XX:+PrintFlagsFinal
    := 表示被 人为/JVM 修改过的值
    = 表示是默认的
    在这里插入图片描述
    -XX:+PrintCommandLineFlags
    命令行的,看程序使用的默认JVM参数
    在这里插入图片描述
    比如最后一个参数表示,默认的垃圾回收机制是并行GC。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值