1. 程式人生 > >JDK自帶的命令列工具

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++的堆疊

這些工具不用死記和背誦,知道怎麼用就好了!