Java常用命令


jps    查看java進程的PID
java -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,導致之后真正執行頻繁的代碼沒有足夠的空間存放。

 
 
 
 
 
 
 
 
 
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM