2016-02-29 100 views
2

運行以下命令列出所有可用的JVM標記:jcmd - 最後科拉姆的含義爲`jcmd VM.flags -all`

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 
* 

的問題是:

我只知道一些值的含義,這是我給出解釋,剩下的是什麼意思?

+0

我想'jcmd'話題是一個單獨的標籤過於狹窄。像'jdk-tools'這樣的東西比較適合。 – apangin

回答

2

標誌的類型取決於標誌被聲明/定義的HotSpot源代碼中的位置。大部分標誌在src/share/vm/runtime/globals.hpp中聲明。

  • pd_product標誌在globals.hpp也宣告,但在平臺相關的文件中的一個定義:
  • C1 productC2 product標誌特定於C1(客戶端)和C2(服務器)公司mpiler分別。他們在文件中
  • 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