如何查找内存泄漏

安装eclipse内存分析插件 www.eclipse.org/mat

但是,有时候会安装不上!

可以直接下载mat, 直接使用exe,当然,不如eclipse方便。

 

1,
进入adb shell, ps想要dump内存堆栈的进程,记录pid
ps命令,知道进程号
app_34    1231   97    259556 26172 ffffffff afd0eb18 S com.android.music

 

2,
使用android的命令,可以知道memory信息

 

dumpsys meminfo 1231
得到信息 
                    native   dalvik    other    total
            size:     4892     3655      N/A     8547
       allocated:     3990     2771      N/A     6761
            free:      428      884      N/A     1312
           (Pss):     1615     2312     2350     6277
  (shared dirty):     1236     4140     1440     6816
    (priv dirty):     1576     1516     1736     4828

 Objects
           Views:        0        ViewRoots:        0
     AppContexts:        0       Activities:        0
          Assets:        3    AssetManagers:        3
   Local Binders:       46    Proxy Binders:       48
Death Recipients:        2
 OpenSSL Sockets:        0

 SQL
            heap:        0       memoryUsed:        0
pageCacheOverflo:        0  largestMemAlloc:        0

 

具体大家可以自己研究,不用mat,直接看这个,也能得出memory leak的结论,但是,无法知道哪个应用有问题。


3,
kill -10 1231 杀掉这个进程


确保/data/misc有写入权限,没有的话执行chmod 777 修改该目录权限
用adb logcat可以查看dump过程,


/dalvikvm(  237): SIGUSR1 forcing GC and HPROF dump
I/dalvikvm(  237): hprof: dumping VM heap to "heap-dump-tm1309176136-pid1231.hprof".
I/dalvikvm(  237): hprof: dumping heap strings to "heap-dump-tm1309176136-pid1231.hprof".
I/dalvikvm(  237): hprof: heap dump completed, temp file removed

 

然后,在/data/misc下查看是否产生了类似heap-dump-tm1309176136-pid1231.hprof之类的文件,该文件即为dump出来的文件。

 

4,
用adb pull获得dump出来的文件
adb pull /data/misc/heap-dump-tm1309176136-pid1231.hprof .


5,
用android提供的工具hprof-conv把dump出来的文件转换为mat可以读取的格式
hprof-conv heap-dump-tm1309176136-pid1231.hprof 4.hprof

 

6,
直接使用MAT打开4.hprof
--- >Leak Suspects

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值