JAVA啓動參數大全之二:非標準參數

非標準參數又稱爲擴展參數,其列表如下:
-Xint
 設置jvm以解釋模式運行,所有的字節碼將被直接執行,而不會編譯成本地碼。
 
-Xbatch
 關閉後臺代碼編譯,強制在前臺編譯,編譯完成之後才能進行代碼執行;
 默認情況下,jvm在後臺進行編譯,若沒有編譯完成,則前臺運行代碼時以解釋模式運行。
 
-Xbootclasspath:bootclasspath
 讓jvm從指定路徑(可以是分號分隔的目錄、jar、或者zip)中加載bootclass,用來替換jdk的rt.jar;若非必要,一般不會用到;
-Xbootclasspath/a:path
 將指定路徑的所有文件追加到默認bootstrap路徑中;
-Xbootclasspath/p:path
 讓jvm優先於bootstrap默認路徑加載指定路徑的所有文件;
 
-Xcheck:jni
 對JNI函數進行附加check;此時jvm將校驗傳遞給JNI函數參數的合法性,在本地代碼中遇到非法數據時,jmv將報一個致命錯誤而終止;使用該參數後將造成性能下降,請慎用。
 
-Xfuture
 讓jvm對類文件執行嚴格的格式檢查(默認jvm不進行嚴格格式檢查),以符合類文件格式規範,推薦開發人員使用該參數。
 
-Xnoclassgc
 關閉針對class的gc功能;因爲其阻止內存回收,所以可能會導致OutOfMemoryError錯誤,慎用;
 
-Xincgc
 開啓增量gc(默認爲關閉);這有助於減少長時間GC時應用程序出現的停頓;但由於可能和應用程序併發執行,所以會降低CPU對應用的處理能力。
 
-Xloggc:file
 與-verbose:gc功能類似,只是將每次GC事件的相關情況記錄到一個文件中,文件的位置最好在本地,以避免網絡的潛在問題。
 若與verbose命令同時出現在命令行中,則以-Xloggc爲準。
 
-Xmsn
 指定jvm堆的初始大小,默認爲物理內存的1/64,最小爲1M;可以指定單位,比如k、m,若不指定,則默認爲字節。
 
-Xmxn
 指定jvm堆的最大值,默認爲物理內存的1/4或者1G,最小爲2M;單位與-Xms一致。
 
-Xprof
 跟蹤正運行的程序,並將跟蹤數據在標準輸出輸出;適合於開發環境調試。
 
-Xrs
 減少jvm對操作系統信號(signals)的使用,該參數從1.3.1開始有效;
 從jdk1.3.0開始,jvm允許程序在關閉之前還可以執行一些代碼(比如關閉數據庫的連接池),即使jvm被突然終止;
 jvm 關閉工具通過監控控制檯的相關事件而滿足以上的功能;更確切的說,通知在關閉工具執行之前,先註冊控制檯的控制handler,然後對 CTRL_C_EVENT, CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, and CTRL_SHUTDOWN_EVENT這幾類事件直接返回true。
 但如果jvm以服務的形式在後臺運行(比如servlet引擎),他能接 收CTRL_LOGOFF_EVENT事件,但此時並不需要初始化關閉程序;爲了避免類似衝突的再次出現,從jdk1.3.1開始提供-Xrs參數;當此 參數被設置之後,jvm將不接收控制檯的控制handler,也就是說他不監控和處理CTRL_C_EVENT, CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, or CTRL_SHUTDOWN_EVENT事件。
 
-Xssn
 設置單個線程棧的大小,一般默認爲512k。 

上面這些參數中,比如-Xmsn、-Xmxn…… 都是我們性能優化中很重要的參數;
-Xprof、-Xloggc:file 等都是在沒有專業跟蹤工具情況下排錯的好手;
在上一小節中提到的關於JProfiler的配置中就使用到了-Xbootclasspath/a:path

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章