您好,登錄后才能下訂單哦!
MAT:Memory Analyzer Tool
???????????是一個快速并且功能強大的 java heap 分析器,能分析查找內存泄漏等問題
????????? ?獲取內存快照存儲的dump文件,就可以利用它來分析
????????? ?下載地址:http://www.eclipse.org/mat/downloads.php
基本概念:
????????Shallow Size:對象自身占用的內存大小
????????Retained Size:當前對象大小+它直接/間接引用到的對象大小,兩者之和
通過MAT分析由于代碼原因造成的內存泄漏:
????????-----獲取內存快照(.hprof文件):
????????????方法1:在tomcat/bin/catalina.sh中設置,以便jvm崩潰的時候會打印出堆信息:
??????????????????????????-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=path_address
? ? ? ? ? ? 方法2:使用命令jps、jmap獲取內存快照
? ? ? ? ?jps -m -l? ?列出JVM中運行的進程狀態信息(獲取某個進程的pid, 供后續命令使用)?????????????????????
????????????????????? ? ?jmap -dump:format=b,file=xxx.hprof pid? ? 把進程內存使用情況dump到文件中
????????????方法3:利用jvisualVM
????????-----使用MAT工具分析:
????????????????新建一個文件夾(因為分析的時候會產生很多臨時文件),把要分析的.hprof文件放進來
????????????????打開MAT,選擇要分析的.hprof文件
????????????????分析的時候,根據MAT給出的提示一步步進行即可
注意事項:
因為內存快照是某一瞬間的,所以可能需要多捕獲幾次,多次分析,才能發現問題
分析以后會生成一個壓縮包,如果看不懂的話,可以直接給開發人員進行分析
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。