啟動JVM時通過指定配置參數來指導虛擬機按照我們的要求提供服務,這一點對大多數的Java程序員來說已經是司空見慣。
配置 參數 | 類型 | 說明 | 舉例 |
---|---|---|---|
-X | non-standard | 非標准參數。這些參數不是虛擬機規范規定的。因此,不是所有VM的實現(如:HotSpot,JRockit,J9等)都支持這些配置參數。 | -Xmx、-Xms、-Xmn、-Xss |
-XX | not-stable | 不穩定參數。這些參數是虛擬機規范中規定的。這些參數指定虛擬機實例在運行時的各種行為,從而對虛擬機的運行時性能有很大影響。 | -XX:SurvivorRatio、-XX:+UseParNewGc |
備注:
-X和-XX兩種參數都可能隨着JDK版本的變更而發生變化,有些參數可以能會被廢棄掉,有些參數的功能會發生改變,但是JDK官方不會通知開發者這些變化,需要使用者注意。
-XX參數被稱為不穩定參數,是因為這類參數的設置會引起JVM運行時性能上的差異,配置得當可以提高JVM性能,配置不當則會使JVM出現各種問題, 甚至造成JVM崩潰。
對於-XX類型的配置選項,虛擬機規范有一些慣例,針對不同的平台虛擬機也會提供不同的默認值。
- 對於布爾(Boolean)類型的配置選項,通過
-XX:+<option>
來開啟,通過-XX:-<option>
來關閉。 - 對於數字(Numberic)類型的配置選項,通過
-XX:<option>=<number>
來配置。<number>
后面可以攜帶單位字母,比如: 'k'或者'K'代表千字節,'m'或者'M'代表兆字節,'g'或者'G'代表千兆字節。 - 對於字符串(String)類型的配置選項,通過
-XX:<option>=<string>
來配置。這種配置通過用來指定文件,路徑或者命令列表。
-D是jvm啟動時給系統參數賦值用的(可以是系統默認有的參數,也可以是自己定義的參數),這個過程會在jvm開始java應用程序之前執行。這個參數賦值也可以通過使用System.setProperty(key, value);來完成。
-Dspring.profiles.active=test
-Dhsf.server.port=12404
-Dpandora.qos.port=12401
-Dhsf.http.port=12402