使用pmap查看進程內存
執行命令
使用pmap能夠查看某一個進程(非java的也能夠)的內存使用使用情況,
命令格式:
pmap 進程id
演示樣例說明
比如執行:
pmap 12358
顯示結果例如以下圖(內容較多, 分成幾張圖說明):
內容開始部分

內容結束部分

上圖中,
第一列。內存塊起始地址
第二列。占用內存大小
第三列,內存權限
第四列。內存名稱。anon表示動態分配的內存,stack表示棧內存
最后一行。占用內存總大小,請注意,此處為虛擬內存大小,占用的物理內存大小能夠通過top查看
使用jmap查看Java進程對象使用情況
執行命令
使用jmap能夠查看某個Java進程中每一個對象有多少個實例,占用多少內存。
命令格式:
jmap -histo 進程id
演示樣例說明
比如執行:
jmap -histo 12538
顯示結果例如以下圖(內容較多, 分成幾張圖說明):
內容開始部分

內容結束部分

上圖中:
第一列,序號。無實際意義
第二列,對象實例數量
第三列,對象實例占用總內存數。單位:字節
第四列,對象實例名稱
最后一行,總實例數量與總內存占用數
另,部分演示樣例說明(還沒弄明確,興許補充):
[C。
[B。
[I,
[J,
[L,
使用jstat查看Java內存分布及回收情況
直接看這個帖子:
http://blog.csdn.net/zlzlei/article/details/46471627
補充
發現一個不錯的jmap,jstat等java分析工具的博客。例如以下:
http://blog.csdn.net/fenglibing/article/details/6411999