JDK自帶的命令列工具
一、jps:JVM Process Status Tool,顯示指定系統內所有的虛擬機器程序。
jps的用法:
jps工具主要選項:
-q:只輸出JVMID,省略主類的名稱
-m:輸出虛擬機器程序啟動時傳遞給主類main()函式的引數
-l:輸出主類的全名,如果程序執行的是Jar包,輸出Jar路徑
-v:輸出虛擬機器程序啟動時JVM引數
二、jstat:JVM Statistic Monitoring Tool,用於收集虛擬機器各方面的執行資料
jstat可以顯示本地或遠端虛擬機器程序中的類裝載、記憶體、垃圾回收、JIT編譯等,用法如下:
引數選項:
-class:監視類裝載、解除安裝、總空間及類裝載所耗費的時間
-gc:監視Java堆狀況
-gccapacity:監視內容與-gc基本一樣,但輸出主要關注Java堆各個區域使用到的最大和最小空間
-gcutil:監視內容與-gc基本一樣,但輸出主要關注已使用空間佔總空間的百分比
-gccause:與-gcutil功能一樣,但會額外輸出導致上一次GC產生的原因
-gcnew:監視新生代GC的狀況
-gcnewcapacity:監視內容與-gcnew基本一樣,輸出主要關注使用到的最小和最大空間
-gcold:監視老年代GC的狀況
-gcoldcapacity:監視內容與-gcold基本一樣,輸出主要關注使用到的最小和最大空間
-gcpermcapacity:輸出永久代使用到的最小和最大空間
-compiler:輸出JIT編譯器編譯過的方法、耗時等資訊
-printcompilation:輸出已被JIT編譯的方法
三、jinfo:Configuration Info for Java,顯示虛擬機器配置資訊
jinfo用法:
-flag:列印某個指定的name資訊,[+|-]用於啟用或者禁止該name,<name>=<value>可以動態設定name值
-flags:列印所有VM flags
-sysprops:列印所有Java系統屬性
四、jmap:Memory Map for Java,生成虛擬機器的記憶體轉儲快照(heapdump檔案)
jmap可以用來檢視等待回收物件的佇列,檢視堆的概要資訊,包括採用的是哪種GC收集器,堆空間的使用情況,用法如下:
引數:
-heap:顯示Java堆詳細資訊
-finalizerinfo:顯示在F-Queue中等待Finalizer執行緒執行finalize方法的物件
-dump:生成Java堆轉儲快照
-histo:顯示堆中物件統計資訊
-F:當虛擬機器對-dump選項沒有響應時,使用這個選項強制生成
五、jhat:JVM Heap Dump Brower,用於分析heapdump檔案,它會建立一個HTTP/HTML伺服器,在瀏覽器上檢視分析結果
用法:
利用jmap生成一個dump檔案:
利用jhat分析這個dump檔案:
Server is ready,瀏覽器開啟http://localhost:7000就可以檢視分析了。。。
六、jstack:Stack Trace for Java,顯示虛擬機器的執行緒快照
用法:
引數:
-F:強制輸出執行緒堆疊
-l:除堆疊外,顯示關於鎖的附加資訊
-m:如果呼叫本地方法的話,可以顯示C/C++的堆疊
這些工具不用死記和背誦,知道怎麼用就好了!