標籤:initial 常用命令 沒有 其他 jit 線程 進程 搜尋路徑 模型
jps 查看java進程的PIDjava -XX:+PrintFlagsInitial 顯示所有可設定參數及預設值java -XX:+PrintFlagsFinal 擷取到所有可設定參數及值(手動設定之後的值)java -XX:+PrintCommandLineFlags 顯示出JVM初始化完畢後所有跟最初的預設值不同的參數及它們的值jmap -histo [pid] 查看java堆上的對象分布情況java用法: java [-options] class [args...](執行類)或 java [-options] -jar jarfile [args...](執行 jar 檔案)譬如:java -cp . -Xmx3G -Xmn2G -server -XX:-TieredCompilation AppMain[-options] -d32 使用 32 位元據模型 (如果可用) -d64 使用 64 位元資料模型 (如果可用) -server 選擇 "server" VM,預設 VM 是 server -cp <目錄和 zip/jar 檔案的類搜尋路徑> -classpath <目錄和 zip/jar 檔案的類搜尋路徑>,用 : 分隔的目錄, JAR和 ZIP列表, 用於搜尋類檔案。 -D<名稱>=<值> 設定系統屬性 -verbose:[class|gc|jni] 啟用詳細輸出 -version 輸出產品版本並退出 -showversion 輸出產品版本並繼續 -Xdiag 顯示附加診斷訊息 -Xnoclassgc 禁用類垃圾收集 -Xincgc 啟用增量垃圾收集 -Xloggc:<file> 將 GC 狀態記錄在檔案中 (帶時間戳記) -Xbatch 禁用背景編譯 -Xms<size> 設定初始 Java 堆大小 -Xmx<size> 設定最大 Java 堆大小 -Xss<size> 設定 Java 線程堆棧大小 -Xprof 輸出 cpu 設定檔資料 -XshowSettings 顯示所有設定並繼續 -XshowSettings:all 顯示所有設定並繼續 -XshowSettings:vm 顯示所有與 vm 相關的設定並繼續 -XshowSettings:properties 顯示所有屬性設定並繼續 -XshowSettings:locale 顯示所有與地區設定相關的設定並繼續 -XX:-UseBiasedLocking 關閉偏向鎖預設會進入輕量級鎖狀態 -XX:-DoEscapeAnalysis 關閉逃逸分析 -XX:-TieredCompilation 關閉分層編譯 -XX:-BackgroundCompilation 關閉非同步編譯 -XX:CompileThreshold 方法調用次數或迴圈次數達到這個閾值就會觸發標準編譯(client:1500,server:10000)ps:
觸發OSR編譯的閾值計算(OSR編譯就是只編譯該迴圈代碼不編譯類的其他方法)
-XX:CompileThreshold = 10000
-XX:OnStackReplacePercentage = 140
-XX:InterpreterProfilePercentage = 33
OSR trigger = (CompileThreshold * (OnStackReplacePercentage - InterpreterProfilePercentage)) / 100 = 10700
JIT編譯在預設情況是非同步進行的,當觸發某方法或某代碼塊的最佳化時,先將其放入編譯隊列,然後由編譯線程進行編譯,編譯之後的代碼放在CodeCache中,CodeCache的大小也是有限的,CompileThreshold設定的太低,JIT會將一大堆執行不那麼頻繁的代碼進行編譯,並放入CodeCache,導致之後真正執行頻繁的代碼沒有足夠的空間存放。
Java常用命令