1、–XX:PrintFlagsFinal
在JVM启动后,在命令行中输入命令java –XX:+PrintFlagsFinal -version
可以输出按字母排序的所有XX参数和值的表格。
注:不同版本参数的数量可能会不一样(大概五六百个)。
2、参数解释:
表格的每一行包括五列,来表示一个XX参数,格式如下:
Type | Name | Operator | Value | Application
第一列表示参数的数据类型;
第二列是名称;
第三列:
”=”表示第四列是参数的默认值,
”:=” 表明了参数被用户或者JVM赋值了。
第四列为值;
第五列参数类别的取值只有多种:
product – 官方支持, JVM内部选项
rw – 可动态写入的.
C1 – Client JIT 编译器
C2 – Server JIT 编译器
pd – platform Dependent 平台独立
lp64 – 仅 64 位JVM
manageable – 代表可以运行时修改
diagnostic – 用于虚拟机debug的
experimental – 非官方支持的
例:通过 jinfo 修改参数,打印 GC 详情(PrintGC参数是manageable 的)
小结:通过 jinfo 命令,我可以在生产上临时打开一下 GC 日志或者进行一些数据的配置。(不需要重启应用条件下),也是我们去排查问题的一个关键命令。
3、相关参数–XX:PrintCommandLineFlags
我们可以用-XX:+PrintCommandLineFlags作为快捷方式来查看修改过的参数。这个参数让JVM打印出那些已经被用户或者JVM设置过的详细的XX参数的名称和值,即 -XX:+PrintFlagsFinal的结果中第三列有":="的参数。
输入命令:java –XX: +PrintCommandLineFlags –version
输入命令:java –XX: +PrintFlagsFinal –version |grep ":"
验证一下,和上面查询结果一致: