快過年啦~最近兩個月一直在忙,沒日沒夜的敲代碼,想著一定要在年前更新一篇。 今天介紹一下使用Eclipse MemoryAnalyzer 分析內存溢出問題,最近公司代碼被測試出有卡頓問題,分析應該是OOM導致的,于是找到了這個工具,果然找到了一些模塊destory之后仍被其他類引用到,無法釋放。 首先,百度一下,Memory Analyzer (Eclipse MAT)是一個跨平臺的開源工具,您不僅可以用它來分析內存問題,也可以用來監控整個 java 應用程序的狀態和行為。通過讀取應用程序運行時由 Java 運行時環境生成的轉儲文件快照,Memory Analyzer 使您能夠分析那些調試代碼可能無法發現的復雜問題。下載一下這個工具,解壓后點擊.exe運行,這個時候可能會報錯。我暫時遇到的兩個問題:一個是運行的時候發現JDK存在默認路徑,解決方法就是把環境變量配置中的PATH路徑下的默認路徑刪除即可;另一個是JDK版本不匹配,下載的MAT是64位的就需要64位的JDK才可以,解決方法重新下載一個新版本JDK重新配置一下即可。 好的,下面介紹一下使用方法: 1、生成 .hPRof文件 選擇AndroidStudio中的Monitors中Memory欄上的“小車”按鈕,點擊,然后設備執行你想要檢測的頁面,進入后退出,再次點擊該按鈕。其實這個按鈕是執行了gc回收。然后點擊右邊像文件似的按鈕,稍微等待一會就會生成.hprof文件。
2、文件另存為 選擇左側的Captures,點開下拉加載按鈕選中生成的文件,右鍵,選擇最后一個選項將該文件保存在隨便一個目錄下,取個名字。
3、雙擊打開MAT的.exe文件運行
4、使用MAT打開.hprof文件
注意這個加載過程需要一兩秒,中間無需點擊默默等待就好。
選擇類似于報表似的按鈕,如圖顯示,再ClassName中輸入你要檢測的類的類名進行篩選。
然后就可以根據提示查看是否有內存泄露了。
新聞熱點
疑難解答