`jstat` 是一個命令行工具,用於監視Java虛擬機的各種運行狀態信息。它可以顯示本地或遠程虛擬機進程中的類裝載、記憶體、垃圾收集、JIT編譯等運行數據。`jstat`特別適用於沒有圖形用戶界面(GUI)的環境,如伺服器,作為定位虛擬機性能問題的工具。
`jstat`的命令格式為 `jstat [options] vmid [interval] [count]`,其中:
`options` 指定監視的虛擬機狀態信息,例如 `-gcutil` 來查看垃圾回收的統計信息。
`vmid` 是Java進程的進程ID。
`interval` 是列印間隔時間,單位為毫秒。
`count` 是列印次數,如果未指定,則默認無限次列印。
`jstat`提供了多種選項來監視不同的方面,例如:
`-class` 用於監視類裝載的行為統計。
`-compiler` 用於監視HotSpot JIT編譯器行為統計。
`-gc` 用於監視垃圾回收堆的行為統計。
`-gccapacity` 用於顯示各個垃圾回收代的容量和相應的空間統計。
`-gcutil` 用於顯示垃圾回收的統計概述。
`-gccause` 用於顯示垃圾收集的統計概述,包括最近兩次垃圾回收事件的原因。
`-gcnew` 和 `-gcnewcapacity` 用於監視新生代的行為和記憶體空間統計。
`-gcold` 和 `-gcoldcapacity` 用於監視老年代和永久代的行為和記憶體空間統計。
`-printcompilation` 用於顯示HotSpot編譯方法的統計信息。
使用 `jstat` 可以幫助開發者在生產環境中監控Java應用程式的性能,特別是在發現Full GC次數過多時,可以根據代碼進行分析和定位問題。