• 使用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,自己与开发一起分析结果!我自己也不会了!

  • 相关阅读:
    如何将Python项目发布到PyPI
    hashlib的md5计算
    使用hexo和coding建立静态博客站点
    mysql 使用记录
    linux QA
    linux 使用记录
    转载-linux内核长什么样
    mysql 更改默认字符集
    Say goodbye
    SSH proxycommand 不在同一局域网的机器ssh直连
  • 原文地址:https://www.cnblogs.com/laochun/p/13139656.html
Copyright © 2020-2023  润新知