jvm 性能調優工具之 jmap 命令詳解


jmap名稱:Java Memory Map(內存映射)

官方文檔:https://docs.oracle.com/javase/1.5.0/docs/tooldocs/share/jmap.html

功能描述:

內容太多,直接看前輩們的總結:

java命令--jmap命令使用(這篇文章寫得非常好)
https://www.cnblogs.com/kongzhongqijing/articles/3621163.html

Java虛擬機的內存組成以及堆內存介紹
http://www.hollischuang.com/archives/80

Java GC工作原理
http://www.hollischuang.com/archives/76

JVM內存區域划分Eden Space、Survivor Space、Tenured Gen,Perm Gen解釋
https://www.cnblogs.com/kxm87/p/7205414.html

JDK,JRE,JVM區別與聯系
http://www.hollischuang.com/archives/78

【JVM】12_空間分配擔保(沒看懂?)
https://blog.csdn.net/u013295276/article/details/78468790?locationNum=1&fps=1

 

 

下面是我的一個小小實踐:

1.使用 jmap -dump:format=b,file=filename pid 命令將堆快照文件下載到本地

1
2
3
4
5
6
7
[root@hadoop ~] # jmap -dump:format=b,file=/root/heap.hprof 3346 #導出堆快照文件
Dumping heap to  / root / heap.hprof ...
Heap dump  file  created
[root@hadoop ~] # ll #查看
total  8572
- rw - - - - - - -   1  root root  4365247  Apr   9  08 : 15  heap.hprof
[root@hadoop ~] # sz heap.hprof #將文件下載到本地

2.使用JVM自帶的JVisualVM工具查看堆快照文件

在%JAVA_HOME%/bin目錄下雙擊jvisualvm.exe打開-->文件-->裝入-->選擇Dump文件類型-->找到堆快照文件-->打開

在類欄中找到你要查看的類名

雙擊進入實例數欄-->查看統計出的實例化的對象數目,分析對象的引用找到是誰在實例化此對象,從而找到產生大對象的原因。


免責聲明!

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



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