当前位置 : 主页 > 编程语言 > java >

JVM命令之 jinfo:实时查看和修改JVM配置参数

来源:互联网 收集:自由互联 发布时间:2022-07-05
学习 尚硅谷 宋红康 JVM从入门到精通 的学习笔记 概述 jinfo全拼是 Configuration Info for Java 作用是查看虚拟机配置参数信息,也可以用于调整虚拟机的配置参数。 在很多情况下,Java应用程序

学习 尚硅谷 宋红康 JVM从入门到精通 的学习笔记

概述

jinfo全拼是 Configuration Info for Java
作用是查看虚拟机配置参数信息,也可以用于调整虚拟机的配置参数。
在很多情况下,Java应用程序不会指定所有的Java虚拟机参数,毕竟虚拟机参数太多了,开发人员可能不知道某个Java虚拟机的参数设置的默认值到底是多少,比如说我想看一下默认的新生代老年代比例分配是多少等等。这个时候如果开发人员去查找开发文档的话,可能就比较麻烦了,但是使用jinfo工具,开发人员就能很快的查看到某个虚拟机配置的参数。

JVM命令之 jinfo:实时查看和修改JVM配置参数_linux

基本语法

JVM命令之 jinfo:实时查看和修改JVM配置参数_java_02

查看
jinfo -sysprops 进程id
可以查看由System.getProperties()取得的参数
jinfo -flags 进程id
查看曾经赋过值的一些参数
jinfo -flag 参数名称 进程id
查看某个java进程的具体参数信息

修改
JVM命令之 jinfo:实时查看和修改JVM配置参数_jvm_03
JVM命令之 jinfo:实时查看和修改JVM配置参数_linux_04
针对boolean类型
jinfo -flag [+|-]参数名称 进程id
针对非boolean类型
jinfo -flag 参数名称=参数值 进程id

演示

JVM命令之 jinfo:实时查看和修改JVM配置参数_配置参数_05
JVM命令之 jinfo:实时查看和修改JVM配置参数_java_06

设置完以后启动上面的main方法。下面使用命令查看一下。
JVM命令之 jinfo:实时查看和修改JVM配置参数_jvm_07
用 jps -v可以看到我们自己设置的参数,但是如果我们想知道我们没有设置的参数是多少,我们使用jps -v就不太行了.


使用 jinfo -sysprops 2540就能查看一些信息。
JVM命令之 jinfo:实时查看和修改JVM配置参数_开发人员_08


查询赋过值的信息
JVM命令之 jinfo:实时查看和修改JVM配置参数_开发人员_09


查看具体赋值过的信息,查询是否使用并行垃圾回收器呢。 “+” 代表使用了
JVM命令之 jinfo:实时查看和修改JVM配置参数_linux_10

查询是否使用了串行的垃圾回收器, “- ”代表没有使用
JVM命令之 jinfo:实时查看和修改JVM配置参数_linux_11


查看最大堆空间大小
JVM命令之 jinfo:实时查看和修改JVM配置参数_linux_12


修改参数可以立即生效,但是不是所有的值都可以动态的去修改,只有被标记为manageable的flag可以被实时的修改,

下面命令是查看PrintGCDetails的值,结果是 “-”代表没有修改过
JVM命令之 jinfo:实时查看和修改JVM配置参数_linux_13

第一行命令 PrintGCDetails 前面添加 “+” , 再去执行第二行的命令,查看,就发现之前是"-“,现在变成了”+",说明参数被修改了.
JVM命令之 jinfo:实时查看和修改JVM配置参数_linux_14

下面也是动态的修改,修改后再查看,发现修改成功了.

JVM命令之 jinfo:实时查看和修改JVM配置参数_配置参数_15

注意,动态修改的值仅仅临时有效,当你这个进程关闭之后,这个动态修改的参数就失效了,你下次再启动Java程序的时候,又回来原来的值了.

扩展

拓展
java -XX:+PrintFlagsInitial
查看所有JVM参数启动的初始值
java -XX:+PrintFlagsFinal
查看所有JVM参数的最终值
JVM命令之 jinfo:实时查看和修改JVM配置参数_jvm_16
值前面添加冒号:的是修改之后的值,没有添加的都是没有发生改变的初始值

java -参数名称:+PrintCommandLineFlags
查看那些已经被用户或者JVM设置过的详细的XX参数的名称和值

演示

JVM命令之 jinfo:实时查看和修改JVM配置参数_java_17
将结果输出到 1.txt 里面.

JVM命令之 jinfo:实时查看和修改JVM配置参数_配置参数_18


上一篇:JVM命令之 jstack:打印JVM中线程快照
下一篇:没有了
网友评论