語法
jmap [ option ] pid
jmap [ option ] executable core
jmap [ option ] [server-id@]remote-hostname-or-IP
參數(shù)
option 參數(shù)是單一的,緊跟在命令后面。
pid 要被映射的進(jìn)程。必須是java進(jìn)程。用jps可以獲得java進(jìn)程列表
executable 產(chǎn)生核心轉(zhuǎn)儲(chǔ)的可執(zhí)行java代碼
core 要被映射的核心文件
remote-hostname-or-IP 遠(yuǎn)程調(diào)試服務(wù)器的域名或者ip地址(看jsadebugd)
server-id 可選唯一id,如果多個(gè)服務(wù)器運(yùn)行在同一個(gè)遠(yuǎn)程主機(jī)
描述
是復(fù)制共享對(duì)象的內(nèi)存映射、給定進(jìn)程的堆內(nèi)存、核心文件、遠(yuǎn)程調(diào)試服務(wù)器。如果給定的進(jìn)程是再64的VM,你需要制定參數(shù),例如:
jmap -J-d64 -heap pid
注意:這個(gè)工具在未來的JDK里可能不支持或者不出現(xiàn)。在windows系統(tǒng)里沒有dbgeng.dll, 需要安裝'Debugging Tools for Windows'來運(yùn)行這些工具。同時(shí)PATH環(huán)境變量必須包含被目標(biāo)進(jìn)程或者崩潰導(dǎo)出文件位置鎖使用的jvm.dll路徑。例如:
set PATH=\jre\bin\client;%PATH%
OPTIONS
<no option> 當(dāng)沒有選項(xiàng),jmap復(fù)制共享對(duì)象映射。目標(biāo)虛擬機(jī)中的每一個(gè)分享對(duì)象、開始地址、映射大小、完整路徑被復(fù)制。這類似于Solaris中的pmap工具。
-dump:[live,]format=b,file=<filename> 把java堆導(dǎo)出成hprof二進(jìn)制格式文件。live子選項(xiàng)是可選的。如果指定,只有堆中的活對(duì)象被導(dǎo)出。瀏覽堆鏡像,你可以使用jhat。
-finalizerinfo 復(fù)制正在等待回收的對(duì)象信息
-heap 復(fù)制一個(gè)堆得概要。使用的GC算法堆配置,使用代的大小。
-histo[:live] 復(fù)制一個(gè)堆得柱狀圖。每個(gè)Java類,對(duì)象個(gè)數(shù),內(nèi)存大小(byte),類全路徑。VM的內(nèi)部類用*為前綴。如果live子選項(xiàng)被指定,只有活對(duì)象被計(jì)數(shù)。
-permstat 打印堆中永生代的類加載器的寬泛統(tǒng)計(jì)。每個(gè)加載器的名字,活性,地址,父加載器,它加載的類的大小。另外,駐留字符串的大小和數(shù)量。
-F 強(qiáng)制。使用jmap -dump 或者 jmap -histo 選項(xiàng)時(shí),如果pid沒有響應(yīng)。在這個(gè)模式下live子選項(xiàng)不支持。
-h 幫助
-help 幫助
-J<flag> java虛擬機(jī)選項(xiàng)