jhat用于對JAVA heap進行離線分析的工具,他可以對不同虛拟機中導出的heap資訊檔案進行分析,如LINUX上導出的檔案可以拿到WINDOWS上進行分析,可以查找諸如記憶體方面的問題。jhat是用來分析java堆的指令,可以将堆中的對象以html的形式顯示出來,包括對象的數量,大小等等,并支援對象查詢語言。
第一步:導出堆
第二步:分析堆檔案
第三步:檢視html
有時你dump出來的堆很大,在啟動時會報堆空間不足的錯誤,可以使用如下參數:jhat -J-Xmx512m <heap dump file>
對于jhat啟動後顯示的html頁面中功能:
(1)顯示出堆中所包含的所有的類
(2)從根集能引用到的對象
(3)顯示平台包括的所有類的執行個體數量
(4)堆執行個體的分布表
(5)執行對象查詢語句
更多關于對象查詢語言的資訊,見這篇文章:http://bijian1013.iteye.com/blog/2221447
PS:不過jhat和MAT比較起來,就沒有MAT那麼直覺了,MAT是以圖形界面的方式展現結果,MAT的使用方式可以參看文章:http://bijian1013.iteye.com/blog/2221442
文章來源:http://blog.csdn.net/gtuu0123/archive/2010/11/27/6039474.aspx