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內存分布及回收情況

Linux使用jstat命令查看jvm的GC情況

補充推薦

JDK內置工具使用


免責聲明!

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



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