使用Android Studio快速查找內存泄漏


1,什么是內存泄漏?
1)內存泄漏和內存溢出
2)垃圾內存

2,怎么回收垃圾內存
1)C語言手動分配和回收
2)java 設計了GC垃圾回收機制

3,GC判斷垃圾內存的策略是什么
1)內存泄漏是一種主管的人為失誤造成的
2)java的GC回收機制:莫對象不再有任何的引用的時候才會進行回收
提問:反過來如果莫對象被別的對象引用了就不能被GC回收嗎?
答:否 無法往上追溯到GCroot 引用點的
軟引用,虛引用,弱引用

可以作為GC root 引用點的是
javastack中的引用的對象
方法區中靜態引用指向的對象

Memory Analyzer網盤鏈接

 

鏈接:https://pan.baidu.com/s/1c-u8sn6nhBCRCy3sStcB6Q
提取碼:gsb0

 

1,打開Android Studio 快速查看內存泄漏

adb shell dumpsys meminfo com.well10.ui -d ( 為包名)

 

當前泄漏 149 數字越大泄漏越多 

2,在Terminal運行

adb shell monkey -p com.well10.ui -v 1000000

 

 

3,在右上角點擊Profile圖標

 

 

4,勾選正在運行的包名

 

 

5,點擊MEMORY

 

6,先點擊刪除圖標在點擊下載圖標

 

 

7,勾選Arrange by Package 快速查找包名所在位置

 

 

8,以查找到泄漏112數量

 

9,以上是快速得出結果,點擊下載圖標 Heap Dump 

 

10,保存,也可以保存到其他目錄

 

11,找到你剛剛保存的路徑,把文件與路徑合並

12,使用 hprof-conv -z (跟上你剛剛合並的文件路徑.hprof),在跟上你合並的文件路徑,在后面添加容易識別的數字!在按 Enter鍵,

 

13,打開 Memory Analyzer軟件上面有網盤鏈接,

 

14,打開之后點擊 File 在點擊 Open Heap Dump下拉框 由於截不了圖,

15,點擊之后會彈框出來!點擊你剛剛創建的容易識別的文件

 

 

16,此時會彈框點擊Finish

 

 

17,點擊Overview,在點擊Histogram

 

 

18  點擊Group result by 圖標

 

19 ,勾選 Group by Package 下拉框截不了圖,也就是最后一個

 

20,找到包名!也許你的包名與我的不一樣

21,右擊勾選

23,自己與開發一起分析結果!我自己也不會了!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM