java程序高內存查看實踐

一、top命令:Linux命令。能夠查看實時的內存使用狀況。 而後使用大寫M
進程按照內存使用排序如圖:html

圖片描述

二、jmap -histo:live [pid],而後分析具體的對象數目和佔用內存大小,從而定位代碼。java

jmap -histo:live 9823 | head -n 100 // 查詢前100個內存使用太高的java類

結果如圖:
圖片描述
從結果上看String 類使用內存太高,能夠檢測一下代碼中String 使用狀況。這裏只是我測試服的狀況,小夥伴能夠查看本身服務器上java程序的內存使用狀況。數組

class name 是對象類型 說明一下服務器

B  byte
C  char
D  double
F  float
I  int
J  long
Z  boolean
[  數組,如[I表示int[]
[L+類名 其餘對象

三、jmap -dump:live,format=b,file=xxx.xxx [pid],而後利用MAT工具分析是否存在內存泄漏等等。工具

jmap -dump:live,format=b,file=servermem.bin 9823

把這個bin文件dump下來使用MAT工具進行分析,如何使用下章講解。
說明:因爲環境不同測試的結果極可能不同哦測試

[小福利:]推薦一個很是好用的商業java分析工具 jProfilespa

相關文章
相關標籤/搜索