java啓動參數二

非標準參數又稱爲擴展參數,其列表以下:
-Xint
設置jvm以解釋模式運行,全部的字節碼將被直接執行,而不會編譯成本地碼。數據庫

-Xbatch
關閉後臺代碼編譯,強制在前臺編譯,編譯完成以後才能進行代碼執行;
默認狀況下,jvm在後臺進行編譯,若沒有編譯完成,則前臺運行代碼時以解釋模式運行。bootstrap

-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錯誤,慎用;jvm

-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;

相關文章
相關標籤/搜索