溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

內(nèi)存泄漏分析利器MAT

發(fā)布時(shí)間:2020-07-26 17:55:02 來(lái)源:網(wǎng)絡(luò) 閱讀:440 作者:愛(ài)與夢(mèng)想 欄目:軟件技術(shù)

MAT:Memory Analyzer Tool

???????????是一個(gè)快速并且功能強(qiáng)大的 java heap 分析器,能分析查找內(nèi)存泄漏等問(wèn)題

????????? ?獲取內(nèi)存快照存儲(chǔ)的dump文件,就可以利用它來(lái)分析

????????? ?下載地址:http://www.eclipse.org/mat/downloads.php


基本概念:

????????Shallow Size:對(duì)象自身占用的內(nèi)存大小

????????Retained Size:當(dāng)前對(duì)象大小+它直接/間接引用到的對(duì)象大小,兩者之和


通過(guò)MAT分析由于代碼原因造成的內(nèi)存泄漏:

????????-----獲取內(nèi)存快照(.hprof文件):

????????????方法1:在tomcat/bin/catalina.sh中設(shè)置,以便jvm崩潰的時(shí)候會(huì)打印出堆信息:

??????????????????????????-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=path_address

? ? ? ? ? ? 方法2:使用命令jps、jmap獲取內(nèi)存快照

? ? ? ? ?jps -m -l? ?列出JVM中運(yùn)行的進(jìn)程狀態(tài)信息(獲取某個(gè)進(jìn)程的pid, 供后續(xù)命令使用)?????????????????????

????????????????????? ? ?jmap -dump:format=b,file=xxx.hprof pid? ? 把進(jìn)程內(nèi)存使用情況dump到文件中

????????????方法3:利用jvisualVM

????????-----使用MAT工具分析:

????????????????新建一個(gè)文件夾(因?yàn)榉治龅臅r(shí)候會(huì)產(chǎn)生很多臨時(shí)文件),把要分析的.hprof文件放進(jìn)來(lái)

????????????????打開(kāi)MAT,選擇要分析的.hprof文件

????????????????分析的時(shí)候,根據(jù)MAT給出的提示一步步進(jìn)行即可

內(nèi)存泄漏分析利器MAT

內(nèi)存泄漏分析利器MAT

內(nèi)存泄漏分析利器MAT

內(nèi)存泄漏分析利器MAT

內(nèi)存泄漏分析利器MAT

注意事項(xiàng):

  1. 因?yàn)閮?nèi)存快照是某一瞬間的,所以可能需要多捕獲幾次,多次分析,才能發(fā)現(xiàn)問(wèn)題

  2. 分析以后會(huì)生成一個(gè)壓縮包,如果看不懂的話,可以直接給開(kāi)發(fā)人員進(jìn)行分析

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI