1、移动学习在主界面时按如下顺序点击:

2、其实和 android内存分析 outOfMemoryError错误定位及分析策略(非显示图片造成) 中用eclipse前7步的设置一样,只不过这个速度更快一些,更方便一些(eclipse ddms模式下卡的要死要死~~~~)

3、用mat for mac(下载地址:http://www.eclipse.org/mat/downloads.php) 打开hprof文件:

4、按Shallow Heap降序排列后,如上图所示

Shallow Heap代表:对象本身占用内存的大小,不包含其引用的对象。

Retain Heap代表:如果这个对象被释放掉,那会因为该对象的释放而减少引用进而被释放的所有的对象大小。

直观的说就是MainNewActivity占了312字节的内存,如果被释放掉的话它所持有的对象也会被释放掉共大于等于2888字节内存。

5、在MainNewActivity右键->List Objects会出现两个选项:with outgoing references 和 with incoming references

with outgoing references是指 被该对象引用的对象 (这个对象持有了哪个对象)

with incoming references是指 引用到该对象的对象(哪个对象持有了该对象)

点击with outgoing references后如图:

6、显示出MainNewActivity所持有的所有成员变量,activityInfo的所有信息等等,点击其中的termEnd右键with incoming references,列出所有持有该对象的对象:

7、即可看到LoadActivity、SettingsActivity、LoginActivity都持有该变量(该变量写在了BaseActivity里),大问题啊,改!

8、GC Roots:调用该对象的根节点,例子如图:

9、如果在object4上右键 path to GCRoot -> exclude all phantom/weak/soft etc. references(去除所有的虚引用,弱引用,软引用) 就会得到调用该类的跟节点gc root,例如:

10、可以看出是在DBManagerHelper中实例化sqliteOpenHelper时初次调用了sqliteOpenHelper。此方法在查询对象在哪里最初被调用或持有非常好使。

11、移动学习进入主程序后,LoadActivity理应被释放,但是还常驻内存,查了一下incoming references,发现是common.commonContext对象持有了该对象,造成了内存泄漏,修改LoadActivity和BaseActivity中的代码

移动学习 AndroidStudio内存优化分析—hprof文件分析相关推荐

  1. android studio 分析 hprof,移动学习 AndroidStudio内存优化分析—hprof文件分析

    1.移动学习在主界面时按如下顺序点击: 2.其实和 android内存分析 outOfMemoryError错误定位及分析策略(非显示图片造成) 中用eclipse前7步的设置一样,只不过这个速度更快 ...

  2. JMV内存hprof文件分析

    文章目录 前言 一.JVM 参数配置 二.伪代码示例 三.error log 三.hprof文件分析 总结 前言 最近项目并发访问的时候日志有OutOfMemoryError,随即分析一下JVM hp ...

  3. jvisualvm分析hprof文件

    jvisualvm是jdk8的bin目录下自带的一个分析工具,在我下载的jdk11下没有这个工具,这个工具我们可以用来分析hprof文件 首先我们可以配置对应的参数,配置文件地址在\jdk8\lib\ ...

  4. hprof文件分析工具_应用稳定性优化系列(三),资源泄露问题分析及定位

    继介绍稳定性ANR类故障和Crash/Tombstone类故障后,本章将介绍第三大类故障资源泄露及其典型场景.分析定位和解决方法. 1  资源泄露问题原因分析 2  典型泄露场景 静态变量长期维持到大 ...

  5. hprof文件分析工具_【赵强老师】如何分析Java的内存溢出问题

    欢迎关注赵强老师微信公众号:myitshare 一.什么是内存溢出? 内存溢出(OOM:out of memory)通俗理解就是内存不够,通常在运行大型软件或游戏时,软件或游戏所需要的内存远远超出了你 ...

  6. 使用MAT的命令行工具分析hprof文件

    Eclipse Memory Analyzer 对于MAT这个专业的内存泄漏分析工具,大家应该都比较熟悉,用起来很方便,只需要打开Eclipse,然后把jmap或者jvm dump出来的文件拖到Ecl ...

  7. jhat命令分析hprof文件

    当我们拿到hprof文件后,该如何分析呢,这时候我们可以用到jdk自带的jhat命令进行分析 jhat -J-Xmx512M *.hprof (这里的-J-Xmx参数可以不要,如果自己机器内存够大的话 ...

  8. android中hprof文件分析

    Hprof基本概念 hprof最初是由J2SE支持的一种二进制堆转储格式,hprof文件保存了当前java堆上所有的内存使用信息,能够完整的反映虚拟机当前的内存状态. 格式 Hprof文件由Fixed ...

  9. 野火STM32学习笔记一、固件库文件分析

    STM32固件库文件分析 汇编编写的启动文件 startup_stm32f10x_hd.s: 设置堆栈指针.设置PC指针.初始化中断向量表.配置系统时钟.调用C库函数main最终去到C的世界 时钟配置 ...

最新文章

  1. Deepin 解决google chrome卡顿的问题
  2. tomcat 部署:直接访问域名访问项目
  3. TCP/IP TIME_WAIT状态原理
  4. java 编写代码_Java 7:如何编写非常快速的Java代码
  5. swiper.js pagination指示点不变_电缆故障点的四种实用测定方法
  6. request payload怎么发_做了一个个人博客,但不知道怎么介绍
  7. 二分图的匹配(未完)
  8. 《数据结构题集》习题解析
  9. 微型计算机的硬件原理图,电脑硬件基础图解
  10. Linux之计划任务
  11. 草莓电吉他音源 Orange Tree Samples Evolution Strawberry Kontakt
  12. 冬季下肢静脉曲张如何治疗
  13. 游戏技能一:激光扫射的实现【CocosCreator 2D】【TypeScript】
  14. workbench3.2学习笔记三
  15. dnf商人计算机制作,DNF商人3年半时间月入50000 教你赚些零用钱
  16. PID 整定方法与原理-说明了“I”的用法
  17. EI(SCI) 收录国外英文期刊(计算机类),A类期刊会议
  18. Aiseesoft Mac Video Converter Ultimate for Mac(视频转换工具)
  19. 魔兽世界70人最多服务器,数据告诉你,《魔兽世界》TBC怀旧服有多受欢迎
  20. 迷你折叠洗衣机UL测试项目

热门文章

  1. Matlab 斜率和曲率,曲率_与闪电共舞_新浪博客
  2. solidworks万向节配合
  3. 如何判断一个员工是潜力无限,还是“烂泥扶不上墙”?
  4. php redis 唯一id,PHP + Redis 实现一个简单的twitter
  5. glibc2.29+的off by null利用
  6. Visual Stuido 2005 VSTS Developer Edition 的小虫
  7. 电子称DIY(贴应变片+写代码)
  8. 牛客每日练习----​​​​​​​最长回文,Alice和Bob赌糖果,N阶汉诺塔变形
  9. 恶习为什么难戒?因为你在HALT状态
  10. Python基本语法,让我们轻松入门学习Python!