查看虚拟机配置参数信息,也可用于调整虚拟机的配置参数
在很多情况下,java应用程序不会指定所有的java虚拟机参数,而此时,开发人员可能不知道某一个具体的java虚拟机参数的默认值,在这种情况下,可能需要通过查找文档获取某个参数的默认值,非常不方便,有了jinfo工具,开发人员可以很方便地找到java虚拟机参数的当前值。
jinfo -sysprops PID 可以查看由System.getProperties()取得的参数
jinfo -flags PID 查看曾经赋过值的一些参数 可能linxu会有权限问题禁止访问正在运行的进程的内存,添加一下配置就行了 mac上jdk8可能有bug 升级到9或者12都可以
jinfo -flag 具体参数 PID 查看某个java进程的具体参数的值 例如: jinfo -flag UseParallelGC 3450
jinfo不仅可以查看运行时某一个java虚拟机参数的实际取值,甚至可以在运行时修改部分参数,并使之立即生效。
不过要注意:并非所有参数都是支持动态修改的,参数只有被标记为manageable的flag可以被实时修改,其实,这个修改能力是非常有限的
可以查看被标记为manageable的参数
java -XX:+PrintFlagsFinal -version | grep manageable
修改方式如下
jinfo -flag +PrintGCDetails 3540
jinfo -flag MaxHeapFreeRaito=100 3540