jcmd - `jcmd VM.flags -all` 最后一列的含义

jcmd - Meaning of last colum for `jcmd VM.flags -all`

运行 以下命令列出所有可用的 jvm 标志:

jcmd 24468 VM.flags -all | less -N

然后在最后一列中,找到以下值 (使用 JDK1.8,在 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
* 

问题是:

我只知道一些值的含义,我已经给出了解释,其余的值是什么意思?

标志的类型取决于 HotSpot 源代码中声明/定义标志的位置。 Most 标志在 src/share/vm/runtime/globals.hpp.

中声明
  • pd_product 标志也在 globals.hpp 中声明,但在依赖于平台的文件之一中定义:
  • C1 productC2 product 标志分别特定于 C1(客户端)和 C2(服务器)编译器。它们在文件中声明
  • C1 pd productC2 pd product 是平台特定目录中定义的 ose C1/C2 标志(os、cpu、os_cpu).
  • product rw 标志类似于 manageable,但仅供内部使用,并可能在 JVM 的未来版本中发生变化。这些标志也可以通过 JMX 在 运行 时间内修改。
  • lp64_product 标志仅存在于 64 位 JVM 中。在 32 位 JVM 中,它们是编译时常量。
  • ARCH product 标志只存在于特定的架构上,不像 pd_product 到处都存在但默认值不同。特定于体系结构的标志在 src/cpu/x86/vm/globals_x86.hpp.
  • 中声明和定义
  • commercial 标志需要 -XX:+UnlockCommercialFeatures 选项。

还有

  • diagnostic 供 JVM 开发人员使用的标志。
    它们由 -XX:+UnlockDiagnosticVMOptions 解锁。
  • experimental 不完全 tested/supported.
    特征的标志 它们由 -XX:+UnlockExperimentalVMOptions.
  • 解锁