一、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