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

时间:2016-02-29 04:19:38

标签: java jvm jdk-tools jcmd

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

jcmd 24468 VM.flags -all | less -N

然后在最后一栏中,找到以下值(在Linux上使用JDK1.8)

* 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
* 

问题是:

我只知道某些价值观的含义,我已经解释了,其余的含义是什么?

1 个答案:

答案 0 :(得分:2)

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

  • pd_product标志也在globals.hpp中声明,但在一个与平台相关的文件中定义:
  • C1 productC2 product标志分别特定于C1(客户端)和C2(服务器)编译器。它们在文件中声明
  • C1 pd productC2 pd product是特定于平台的目录(os,cpu,os_cpu)中定义的C1 / C2标志。
  • 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标记未完全测试/支持的功能。
    它们由-XX:+UnlockExperimentalVMOptions解锁。