Jstat使用詳解

1.jps可以理解成java進程的ps,也就是羅列出所有的正在運行的Java進程(這裏不截圖了);


2.jstat 一個極強的一個VM監控工具;jstat -gcutil pid 可以查看對應該id進程的gc所有狀況,如下圖:




下面解釋一下各個字母表示的意思:

s0:如果瞭解JVM的童鞋,很清楚s0就是Java堆內存裏的新生代的survivor space0的簡稱,所有該值指的是新生代s0的已使用的百分比

s1:如同上面,s1自然而然的就是Java堆內存裏新生代的survivor space1的簡稱,所有該值指的是新生代s1的已使用的百分比

E: E是新生代Eden的簡稱,這裏表示eden區域使用的百分比

O:自然而然的就是oldspace使用耳朵區域,但這裏並不是指的是老年代;

p :premspace的簡稱,指的的老年代使用的百分比;

YGC:新生代的GC次數,也就是MiniorGC的次數,

YCGT:新生代GC所用的時間;

FGC:老年代的GC次數;

FGCT:老年代的GC次數的時間

GCT:垃圾回收的總時間

2.jstat -class 顯示加載class的數量




Loaded表示已經加載的class類的數量,Bytes表示Loaded多少字節,unloaded表示沒有加載的class,Bytes表示unloaded多少字節

Time表示加載時間

3.jmap pid 

  heap,以二進制輸出成文本。使用方法 jmap -histo pid。如果連用 SHELL jmap -histo pid>a.log可以將其保存到文本中去(windows下也可以使用),在一段時間後,使用文本對比工具,可以對比出GC回收了哪些對象。(這裏就不截圖了)



基本上借用上面三種工具很快就能定位到代碼哪裏出問題了,或者哪裏需要優化;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章