1. 概述
XX:+PrintFlagsInitial 是打印所有的默认参数设置
-XX:+PrintFlagsFinal 是打印最终值,如果某个默认值被新值覆盖,显示新值
-XX:+PrintCommandLineFlags 是打印那些被新值覆盖的项
2. PrintFlagsFinal用法举例
例:
java -XX:+PrintFlagsFinal -version
结果:
[Global flags]
uintx AdaptivePermSizeWeight = 20 {product}
uintx AdaptiveSizeDecrementScaleFactor = 4 {product}
uintx AdaptiveSizeMajorGCDecayTimeScale = 10 {product}
....
表格的每一行包括五列,来表示一个参数。第一列表示参数的数据类型,第二列是名称,第四列为值,第五列是参数的类别。第三列”=
”表示第四列是参数的默认值,而”:=
” 表明了参数被用户或者JVM赋值了。
可以进行过滤,仅查看被修改项:
java -XX:+PrintFlagsFinal -version | grep ":"
执行结果:
uintx InitialHeapSize := 57505088 {product}
uintx MaxHeapSize := 920649728 {product}
uintx ParallelGCThreads := 4 {product}
bool PrintFlagsFinal := true {product}
bool UseParallelGC := true {product}
3. PrintCommandLineFlags
java -XX:+PrintCommandLineFlags -version
按道理应该找个应用,带入设置的jvm参数,来验证,这里是简约举个例子而已:
C:\Users\Administrator>java -XX:+PrintCommandLineFlags -version
-XX:InitialHeapSize=16777216 -XX:MaxHeapSize=268435456 -XX:+PrintCommandLineFlags -XX:-UseLargePagesIndividualAllocation
java version "1.8.0_271"
Java(TM) SE Runtime Environment (build 1.8.0_271-b09)
Java HotSpot(TM) Client VM (build 25.271-b09, mixed mode)
从结果来看,-version命令系统还是有些参数设置的