Run following command to list all available jvm flags:
jcmd 24468 VM.flags -all | less -N
Then in last column, found following values (using JDK1.8, on linux):
* product
default value is the same on all platform,
* pd product
default value is platform-dependent,
* manageable
could change dymanically in runtime,
*
* C1 product
* C2 product
*
* C1 pd product
* C2 pd product
*
* product rw
*
* lp64_product
* ARCH product
*
* commercial
*
The question is:
I only know the meaning of some values, which I have give explanation, what are the meaning of the rest ones?
The type of a flag depends on a location in HotSpot source code where the flag is declared / defined. Most flags are declared in src/share/vm/runtime/globals.hpp.
pd_product
flags are also declared in globals.hpp, but defined in one of platform-dependent files:
C1 product
and C2 product
flags are specific to C1 (client) and C2 (server) compiler respectively. They are declared in files
C1 pd product
and C2 pd product
are those C1/C2 flags defined in platform-specific directories (os, cpu, os_cpu).product rw
flags are similar to manageable
, but intended for internal use and subject to change in future versions of JVM. These flags can also be modified in run-time via JMX.lp64_product
flags exist only in 64-bit JVM. In 32-bit JVM they are compile-time constants.ARCH product
flags exist only on particular architecture, unlike pd_product
that exist everywhere but differ in default value. Architecture-specific flags are declared and defined in src/cpu/x86/vm/globals_x86.hpp.commercial
flags require -XX:+UnlockCommercialFeatures
option.There are also
diagnostic
flags for use by JVM developers.-XX:+UnlockDiagnosticVMOptions
. experimental
flags for features that are not fully tested/supported.-XX:+UnlockExperimentalVMOptions
.