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

  • 相关阅读:
    在Windows10上安装Linux子系统
    《ln--软连接》--linux命令
    【转】最详细的Log4J使用教程
    7 str字符串的内置函数
    6.1 range创建数值序列
    6 int数值类型的内置函数
    linux shell 字符串操作(长度,查找,截取,替换)详解
    awk 字符串处理函数
    Shell字符串截取
    5 python基本数据类型
  • 原文地址:https://www.cnblogs.com/laochun/p/13139656.html
Copyright © 2011-2022 走看看