linux下分析Java程序內存匯總


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM