移动学习 AndroidStudio内存优化分析—hprof文件分析
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文件分析相关推荐
- android studio 分析 hprof,移动学习 AndroidStudio内存优化分析—hprof文件分析
1.移动学习在主界面时按如下顺序点击: 2.其实和 android内存分析 outOfMemoryError错误定位及分析策略(非显示图片造成) 中用eclipse前7步的设置一样,只不过这个速度更快 ...
- JMV内存hprof文件分析
文章目录 前言 一.JVM 参数配置 二.伪代码示例 三.error log 三.hprof文件分析 总结 前言 最近项目并发访问的时候日志有OutOfMemoryError,随即分析一下JVM hp ...
- jvisualvm分析hprof文件
jvisualvm是jdk8的bin目录下自带的一个分析工具,在我下载的jdk11下没有这个工具,这个工具我们可以用来分析hprof文件 首先我们可以配置对应的参数,配置文件地址在\jdk8\lib\ ...
- hprof文件分析工具_应用稳定性优化系列(三),资源泄露问题分析及定位
继介绍稳定性ANR类故障和Crash/Tombstone类故障后,本章将介绍第三大类故障资源泄露及其典型场景.分析定位和解决方法. 1 资源泄露问题原因分析 2 典型泄露场景 静态变量长期维持到大 ...
- hprof文件分析工具_【赵强老师】如何分析Java的内存溢出问题
欢迎关注赵强老师微信公众号:myitshare 一.什么是内存溢出? 内存溢出(OOM:out of memory)通俗理解就是内存不够,通常在运行大型软件或游戏时,软件或游戏所需要的内存远远超出了你 ...
- 使用MAT的命令行工具分析hprof文件
Eclipse Memory Analyzer 对于MAT这个专业的内存泄漏分析工具,大家应该都比较熟悉,用起来很方便,只需要打开Eclipse,然后把jmap或者jvm dump出来的文件拖到Ecl ...
- jhat命令分析hprof文件
当我们拿到hprof文件后,该如何分析呢,这时候我们可以用到jdk自带的jhat命令进行分析 jhat -J-Xmx512M *.hprof (这里的-J-Xmx参数可以不要,如果自己机器内存够大的话 ...
- android中hprof文件分析
Hprof基本概念 hprof最初是由J2SE支持的一种二进制堆转储格式,hprof文件保存了当前java堆上所有的内存使用信息,能够完整的反映虚拟机当前的内存状态. 格式 Hprof文件由Fixed ...
- 野火STM32学习笔记一、固件库文件分析
STM32固件库文件分析 汇编编写的启动文件 startup_stm32f10x_hd.s: 设置堆栈指针.设置PC指针.初始化中断向量表.配置系统时钟.调用C库函数main最终去到C的世界 时钟配置 ...
最新文章
- Deepin 解决google chrome卡顿的问题
- tomcat 部署:直接访问域名访问项目
- TCP/IP TIME_WAIT状态原理
- java 编写代码_Java 7:如何编写非常快速的Java代码
- swiper.js pagination指示点不变_电缆故障点的四种实用测定方法
- request payload怎么发_做了一个个人博客,但不知道怎么介绍
- 二分图的匹配(未完)
- 《数据结构题集》习题解析
- 微型计算机的硬件原理图,电脑硬件基础图解
- Linux之计划任务
- 草莓电吉他音源 Orange Tree Samples Evolution Strawberry Kontakt
- 冬季下肢静脉曲张如何治疗
- 游戏技能一:激光扫射的实现【CocosCreator 2D】【TypeScript】
- workbench3.2学习笔记三
- dnf商人计算机制作,DNF商人3年半时间月入50000 教你赚些零用钱
- PID 整定方法与原理-说明了“I”的用法
- EI(SCI) 收录国外英文期刊(计算机类),A类期刊会议
- Aiseesoft Mac Video Converter Ultimate for Mac(视频转换工具)
- 魔兽世界70人最多服务器,数据告诉你,《魔兽世界》TBC怀旧服有多受欢迎
- 迷你折叠洗衣机UL测试项目
热门文章
- Matlab 斜率和曲率,曲率_与闪电共舞_新浪博客
- solidworks万向节配合
- 如何判断一个员工是潜力无限,还是“烂泥扶不上墙”?
- php redis 唯一id,PHP + Redis 实现一个简单的twitter
- glibc2.29+的off by null利用
- Visual Stuido 2005 VSTS Developer Edition 的小虫
- 电子称DIY(贴应变片+写代码)
- 牛客每日练习----​​​​​​​最长回文,Alice和Bob赌糖果,N阶汉诺塔变形
- 恶习为什么难戒?因为你在HALT状态
- Python基本语法,让我们轻松入门学习Python!