使用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,