JAVA命令系列(三) : jmap


1、功能

jmap 主要用於打印指定java進程的堆內存信息。可以使用jmap生成Heap Dump,查看堆內存對象示例的統計信息、查看ClassLoader的信息

 2、位置

 jmap 命令位於$JAVA_HOME/bin目錄下

 3、jmap 的用法

 參數:

  • option 選項參數
  • pid 需要打印配置信息的進程ID
  • executable 產生核心dump的Java可執行文件
  • core 需要打印配置信息的核心文件
  • server-id 可選的唯一id,如果相同的遠程主機上運行了多台調試服務器,用此選項參數標識服務器
  • remote server IP or hostname 遠程調試服務器的IP地址或主機名

option

  • no option: 查看進程的內存映像信息,類似 pmap 命令。
  • heap: 顯示java堆詳細信息
  • histo[:live]: 顯示堆中對象的統計信息
  • clstats: 打印類加載信息
  • finalizerinfo: 顯示在F-Queue隊列等待Finalizer線程執行finalizer方法的對象
  • dump:<dump-options>:生成堆轉存儲快照
  • F: 當-dump沒有響應時,使用--dump或者-histo參數 在這個模式下,live子參數無效
  • help 打印幫助信息
  • J<flag>: 指定傳遞個運行jmap的jvm的參數

3.1 no option 

命令: jmap pid

jmap pid 使用不帶選項參數的jmap打印共享對象映射,會打印目標虛擬機中加載的每個共享對象的起始地址、映射大小以及共享對象文件的路徑全稱

 3.2 heap 

命令: jmap -heap pid

 打印一個堆的摘要信息,包括使用的GC算法、堆配置信息和各內存區域內存使用情況

 3.3 histo[:live]

命令: jmap -histo:live pid 

輸出每個java類的對象數量、內存大小(單位:字節)、完全限定的類名。打印的虛擬機內部的類名稱將會帶有一個‘*‘’前綴。如果指定了live子選項,則只計算活動的對象

第一列:編號id

第二列:實例個數

第三列:所有實例大小

第四列:類名

 3.4 finalizerinfo

  命令: jmap -finalizerinfo pid

   打印等待終結的對象信息

 Number of objects pending for finalization: 0 說明當前F-QUEUE隊列中並沒有等待Fializer線程執行finalizer方法的對象。

3.5 dump:<dump-options>

命令 jmap -dump:live,format=b,file=dump.hprof pid

以hprof二進制格式轉儲Java堆到指定filename的文件中。live子選項是可選的。如果指定了live子選項,堆中只有活動的對象會被轉儲

 3.6 -F 

強制模式。如果指定的pid沒有響應,請使用jmap -dump或jmap -histo選項。此模式下,不支持live子選項

jmap -F -dump:format=b,file=dump.hprof

 


免責聲明!

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



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