本系列筆記主要基於《深入理解Java虛擬機:JVM高級特性與最佳實踐 第2版》,是這本書的讀書筆記。 JVM的參數類型,大致可以分為標準參數、X參數、XX參數,而XX參數又可以分為Boolean類型、非Boolean類型。 標準參數 標準參數就是各個JVM的版本中不變的,相對穩定的參數。 例如: < ...
本系列筆記主要基於《深入理解Java虛擬機:JVM高級特性與最佳實踐 第2版》,是這本書的讀書筆記。
JVM的參數類型,大致可以分為標準參數、X參數、XX參數,而XX參數又可以分為Boolean類型、非Boolean類型。
標準參數
標準參數就是各個JVM的版本中不變的,相對穩定的參數。
例如:
-help
-server
-client
-version
-showversion
-cp
-classpath
X參數
X參數是非標準化參數,也是相對不穩定的參數。
例如:
-Xint:解釋執行
-Xcomp:第一次使用就編譯成本地代碼
-Xmixed:混合模式,JVM自己決定是否編譯成本地代碼
如下圖所示,預設是-Xmixed:
XX參數
XX參同樣是非標準化的參數,相對不穩定,主要用於JVM調優和Debug。
XX參數分為Boolean類型和非Boolean類型。
Boolean類型
格式:-XX:[+-]<name> 表示啟用或者禁用name屬性。
例如:
-XX:+UseConcMarkSweepGC
-XX:+UseG1GC
非Boolean類型
格式:-XX:<name>=<value> 表示name屬性的值是value。
例如:
-XX:MaxGCPauseMillis=500
-XX:GCTimeRatio=19
還有一些特例參數,例如:
-Xms
-Xmx
-Xss
這三個參數雖然以X開頭,但不是X參數,而是XX參數。
-Xms 等價於-XX:InitialHeapSize
,設置初始化堆大小。
-Xmx 等價於-XX:MaxHeapSize
,設置堆最大大小。
-Xss 等價於-XX:ThreadStackSize
,設置線程虛擬機棧的大小。
如下圖所示,使用jinfo命令,指定pid,可以查看著三個參數的預設大小。