1. 程式人生 > >【基礎+實戰】JVM原理及優化系列之八:如何檢視JVM引數配置?

【基礎+實戰】JVM原理及優化系列之八:如何檢視JVM引數配置?

1. 檢視JAVA版本資訊

2. 檢視JVM執行模式

 $JAVA_HOME/jre/bin下有clientserver兩個目錄,分別代表JVM的兩種執行模式。
  client執行模式,針對桌面應用,載入速度比server模式快10%,而執行速度為server模式的10分之一。client下預設的堆容量 -Xms1M -Xmx64M 
  server
執行模式,針對伺服器應用。server下預設的堆容量 -Xms128M -Xmx1024M 
通過 java -version 檢視JVM的預設執行模式。

 通過 java -client -version 檢視JVMclient執行模式環境。

 通過 java -server -version 檢視JVMserver執行模式環境。

3. 檢視標準選項

4. 檢視非標準選項

5. 檢視JVM程序的PID

$ jcmd -l

27940 sun.tools.jcmd.JCmd -l

24684 org.codehaus.plexus.classworlds.launcher.Launcher -Prun

23839 com.intellij.idea.Main

23951 org.jetbrains.idea.maven.server.RemoteMavenServer

6. 根據JVM程序ID檢視JVM設定

$jcmd 24684 VM.flags

24684:

-XX:InitialHeapSize=98566144 -XX:MaxHeapSize=1547698176 -XX:MaxNewSize=515899392 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=1572864 -XX:OldSize=96993280 -XX:+UseCompressedClassPointers      -XX:+UseCompressedOops -XX:+UseParallelGC

7. 顯示所有可設定引數及預設值

8. 顯示所有可設定引數的當前值

$java -XX:+PrintFlagsFinal

可結合-XX:+PrintFlagsInitial-XX:+PrintFlagsFinal對比設定前、設定後的差異,方便知道對那些引數做了調整

9. 顯示出JVM所有跟預設值不同的引數及值

該專題是一個系列,參照了一系列JVM資料,對JVM基礎知識做了摘要總結,並結合實戰做了總結:

通覽該系列文章之後,對JVM會有一個整體的認識,對於JVM問題排查和優化會有一定的幫助,如果想對JVM有更深入的理解和認知,建議深入看一下這本書《Java虛擬機器:JVM高階特性與最佳實踐(最新第二版)》,網上可以找到pdf版的,大家可以自己百度一下。