Heap Dump與Analyzer__java-排障、調優

來源:互聯網
上載者:User

堆轉儲檔案中有什麼呢。

每一個類有多少個對象,它們的值是什麼,都可以在堆轉儲檔案中找到。 1.heap dump

除了使用visual VM 外,還可以使用jmap命令。特別是遠程機器不給你開放連接埠連時,只能使用原始的命令列工具。

//將pid=9406這個java進程的堆,dump到heapDump.hprof檔案中。live表示只輸出存活對象的資訊jmap -dump:live,format=b,file=heapDump.hprof 9406

這隻二進位格式的檔案,無法直接閱讀。尾碼hprof可以理解為Heap PROFile。

2.visual VM簡單分析


圖2-1 visual VM的heapDump檔案分析視圖


3.Memory Analyzer

eclipse的一個外掛程式。在Eclipse Marketplace中搜尋即可安裝。免費,功能比visualVM強大。


圖3-1 搜尋並安裝Memory Analyzer

安裝過後,即可開啟一個.hprof檔案嘗試一下。


圖3-2 Memory Analyzer的視圖 4.OQL 對象查尋語言

OQL,Object Query Language,物件查詢語言。

堆轉儲檔案中的類有上千個,像java.lang.String這樣的熱門類,對象可能也有數千個。如何快速地尋找自己感興趣的對象,就要用到OQL了。

visualVM中的OQL與Memory Analyzer中的OQL文法是不一致的,需要注意。。 4.1 Memory Analyzer的文法

//在String類中搜尋值為"Mozilla.*"的對象。需要注意萬用字元為‘*’,不是sql中的'%'select * from java.lang.String s where toString(s) like "Mozilla.*"

5.shallow size 與 retained size Shallow size ,是該對象自己的基本類型資料的大小之和。 java的引用相當於c++的指標,因此在64位平台上,佔8個位元組,在32位平台上佔4個位元組。
Retained size,是該對象自己的shallow size加上從該對象能 直接或間接訪問到對象的shallow size之和。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.