一、基本情况
jinfo (Configuration Info for Java)
查看虚拟机配置参数信息,也可用于调整虚拟机的配置参数
在很多情况下,Java应用程序不会指定所有的Java虚拟机参数。而此时,开发人员可能不知道某一个具体的Java虚拟机参数的默认值。在这种情况下,可能需要通过查找文档获取某个参数的默认值。这个查找过程可能是非常艰难的。但有了jinfo工具,开发人员可以很方便地找到Java虚拟机参数的当前值。
官方帮助文档:
https://docs.oracle.com/en/java/javase/11/tools/jinfo.html
二、基本语法
它的基本使用语法为:
jinfo [ options ] pid
2.1、查看
2.1.1、jinfo -sysprops PID
展示当前进程程序的系统信息
可以查看由System.getProperties()取得的参数
2.1.2、jinfo -flags PID
2.1.3、jinfo -flag 具体参数 IPD
查看某个java进程的具体参数的值
jinfo -flag UseParallelGC 25024查看是否使用平行的垃圾回收器,+代表已使用
-XX:-UseSerialGC:没有使用串行的垃圾回收器
jinfo -flag MaxHeapSize 25024:最大堆空间大小
2.2、修改
jinfo不仅可以查看运行时某一个Java虚拟机参数的实际取值,甚至可以在运行时修改部分参数,并使之立即生效。
但是,并非所有参数都支持动态修改。参数只有被标记为manageable的flag可以被实时修改。其实,这个修改能力是极其有限的。
#可以查看被标记为manageable的参数
java -XX:+PrintFlagsFinal -version | grep manageable
2.2.1、针对boolea类型
2.2.2、针对非boolean类型
三、拓展
3.1、java -XX:+PrintFlagsInitial
3.2、java -XX:+PrintFlagsFinal
查看所有JVM参数的最终值
这个时候在F盘会生成一个pint.txt文件
3.3、java -XX:+PrintCommandLineFlags
查看那些已经被用户或者JVM设置过的详细的XX参数的名称和值