参考博客:https://www.jianshu.com/p/8d8aef212b25java
jinfo(ConfigurationInfoforJava)的做用是实时地查看和调整虚拟机各项参数,使用jps命令的-v参数能够查看虚拟机启动时显式指定的参数列表。
但若是想知道未被显式指定的参数的系统默认值,除了去找资料外,就只能使用jinfo的-flag选项进行查询。jvm
咱们能够经过jinfo实时的修改虚拟机的参数,可是不是任何命令均可以修改,能够修改的参数咱们先来执行这个命令:java -XX:+PrintFlagsFinal -version,会列出当前机器支持的全部参数,那么用jinfo能够修改的参数是什么呢?ide
只有最后一列显示manageable的这一列才能进行修改。idea
仔细查看发现可修改的参数其实并很少,jvm的运行内存一旦在运行时肯定下来,那么就没法修改。可是没法一些错误信息没有记录,或者是处于关闭状态,仍是能够修改的命令行
例如咱们来查询idea的进程是否开启了GC日志信息的详细打印,咱们能够执行这样的命令:jinfo -flag PrintGCDetails 17312,从结果中咱们能够看出是没有开启打印GC详细信息的。线程
jinfo还能够使用-sysprops选项把虚拟机进程的System.getProperties()的内容打印出来,能够执行命令:jinfo -sysprops 17312。3d
jinfo -flags:会打印当前该线程全部相关的参数,例如咱们要来打印idea这个进程的全部相关参数,咱们来执行命令:jinfo -flags 40416会列出JVM的版本,显示当前idea他的非缺省值的东西(也就是你修改过的),还有Command Line 表明的是命令行形式传递给idea这个进程的一些参数日志
查看最大堆内存 jinfo -flag MaxHeapSize 17312 blog
查看所使用的垃圾收集器
jinfo -flag UseConcMarkSweepGC 17312进程
jinfo -flag UseG1GC 17312
jinfo -flag UseParallelGC 17312
能够看出所使用的垃圾回收器是 ParallelGC