Java程式記憶體分析:jdk內建的jmap能為我們帶來什麼__Java

來源:互聯網
上載者:User
摘要  很多時候我們需要對java應用程式的記憶體進行分析最佳化,上次就遇到一個記憶體溢出的問題,用到jmap命令和mat記憶體分析工具解決的,下面講講jmap命令的使用。 記憶體分析  jmap

目錄[-] jmap 命令格式 參數說明 jmap

列印出某個java進程(使用pid)記憶體內的,所有‘對象’的情況(如:產生那些對象,及其數量)。

可以輸出所有記憶體中對象的工具,甚至可以將VM 中的heap,以二進位輸出成文本。使用方法 jmap -histo pid。如果連用SHELL jmap -histo pid>a.log可以將其儲存到文本中去,在一段時間後,使用文本對比工具,可以對比出GC回收了哪些對象。jmap -dump:format=b,file=outfile 3024可以將3024進程的記憶體heap輸出出來到outfile檔案裡,再配合MAT(記憶體分析工具(Memory Analysis Tool)或與jhat (Java Heap Analysis Tool)一起使用,能夠以映像的形式直觀的展示當前記憶體是否有問題。

64位機上使用需要使用如下方式:

jmap -J-d64 -heap pid 命令格式

       jmap [ option ] pid

       jmap [ option ] executable core

       jmap [ option ] [server-id@]remote-hostname-or-IP 參數說明

1)、options: 

executable Java executable from which the core dump was produced.

(可能是產生core dump的java可執行程式)

core 將被列印資訊的core dump檔案

remote-hostname-or-IP 遠程debug服務的主機名稱或ip

server-id 唯一id,假如一台主機上多個遠程debug服務 

2)、基本參數:

-dump:[live,]format=b,file=<filename> 使用hprof二進位形式,輸出jvm的heap內容到檔案=. live子選項是可選的,假如指定live選項,那麼只輸出活的對象到檔案. 

-finalizerinfo 列印正等候回收的對象的資訊.

-heap 列印heap的概要資訊,GC使用的演算法,heap的配置及wise heap的使用方式.

-histo[:live] 列印每個class的執行個體數目,記憶體佔用,類全名資訊. VM的內部類名字開頭會加上首碼”*”. 如果live子參數加上後,只統計活的對象數量. 

-permstat 列印classload和jvm heap長久層的資訊. 包含每個classloader的名字,活潑性,地址,父classloader和載入的class數量. 另外,內部String的數量和佔用記憶體數也會列印出來. 

-F 強迫.在pid沒有相應的時候使用-dump或者-histo參數. 在這個模式下,live子參數無效. 

-h | -help 列印輔助資訊 

-J 傳遞參數給jmap啟動的jvm. 

pid 需要被列印配相資訊的java進程id

首先查看javaw的進程號,7712

jmap -histo pid 展示class的記憶體情況

展示的資訊為編號,執行個體數,位元組,類名


jmap -heap pid 展示pid的整體堆資訊

說明如下: ?

1 2 3 4 5 6 7 8 9 10

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.