當前位置:
首頁 > 知識 > JVM學習系列學習四

JVM學習系列學習四

我們接著上一篇講解:

使用命令查看對內存使用情況

使用到的命令:jstat

Jstat:此命令可以查看對內存各個部分的使用量,以及載入類的數據。

命令格式:

Jstat[-命令選項][vmid][間隔時間/毫秒][查詢次數]

實例

1:查看class載入統計

1.1:使用jps命令查看java程序的PID:

命令:jps

說明:Bootstrap就是Java運行程序的PID

1.2:使用jstat -class JavaPID 命令查看:

如上圖我們查出來的是:10662。所以命令:

Jstat -class 10662

說明:

Loaded:載入的class的數量 11010

Bytest:所佔用空間的大小 21662.8

Unloaded:未載入數量 329

Bytest:未載入佔用空間 513.6

Time:時間 21.82

1.3:查看編譯統計

使用命令:jstat -compiler PID

說明:

Compiled:編譯數量

Failed:失敗數量

Invalid:不可用數量

Time:時間

FailedType:失敗類型

FailedMethod:失敗的方法

1.4:垃圾回收統計

命令:jstat -gc PID

此命令也可以指定列印的間隔和次數。

如我們想要每秒列印一次,共列印5次。命令:

Jstat -gc pid 1000 5

JDK1.7下的:

JDK1.8下的:

是否發現1.7與1.8還是由區別的。

說明:

S0C:第一個Survivor區的大小(KB)

S1C:第二個Survivor區的大小(KB)

S0U:第一個Survivor區的使用大小(KB)

S1U:第二個Survivor區的使用大小(KB)

EC:Eden區的大小(KB)

EU:Eden區的使用大小(KB)

OC:Old區大小(KB)

OU:Old使用大小(KB)

MC:方法區大小(KB)

MU:方法區使用大小(KB)

CCSC:壓縮類空間大小(KB)

CCSU:壓縮類空間使用大小(KB)

YGC:年輕代垃圾回收次數

YGCT:年輕代垃圾回收消耗時間

FGC:老年代垃圾回收次數

FGCT:老年代垃圾回收消耗時間

GCT:垃圾回收消耗總時間

4Jmap的使用及內存溢出分析

4.1:查看內存使用情況

使用命令:jmap -heap PID

說明:從上圖中,我們可以清晰的看出1.8堆內存模型的兩個區域

在來看看JDK1.7的:

是不是發現多了Perm區。

從這裡我們也能看出JDK1.7與JDK1.8的區別。

本文是《JVM學習系列》中的第三篇文章。如果想系統的學習,建議從本教程第一篇開始看。

下節預告:

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 凱哥java 的精彩文章:

胡歌再次當伴郎被搶到手捧花
怎麼將本地項目放到碼雲 gitee上面?圖文詳解

TAG:凱哥java |