Android 性能测试——Heap Viewer 工具

Android 性能测试——Heap Viewer 工具

Heap Viewer能做什么?

  • 实时查看App分配的内存大小和空闲内存大小
  • 发现Memory Leaks

Heap Viewer使用条件

  • 5.0以上的系统,包括5.0
  • 开发者选项可用

Heap Viewer启动

可以直接在Android studio工具栏中直接点击小机器人启动: 

还可以在Android studio的菜单栏中Tools也可以: 

如果你不用Android studio,可以在SDK下的tools下的monitor程序打开: 

Heap Viewer面板

按上图的标记顺序按下,我们就能看到内存的具体数据,右边面板中数值会在每次GC时发生改变,包括App自动触发或者你来手动触发。

ok,现在来解释下面板中的名词

总览

列名 意义
Heap Size 堆栈分配给App的内存大小
Allocated 已分配使用的内存大小
Free 空闲的内存大小
%Used Allocated/Heap Size,使用率
Objects 对象数量

详情

类型 意义
free 空闲的对象
data object 数据对象,类类型对象,最主要的观察对象
class object 类类型的引用对象
1-byte array(byte[],boolean[]) 一个字节的数组对象
2-byte array(short[],char[]) 两个字节的数组对象
4-byte array(long[],double[]) 4个字节的数组对象
non-Java object 非Java对象

下面是每一个对象都有的列名含义:

列名 意义
Count 数量
Total Size 总共占用的内存大小
Smallest 将对象占用内存的大小从小往大排,排在第一个的对象占用内存大小
Largest 将对象占用内存的大小从小往大排,排在最后一个的对象占用的内存大小
Median 将对象占用内存的大小从小往大排,拍在中间的对象占用的内存大小
Average 平均值

当我们点击某一行时,可以看到如下的柱状图:

横坐标是对象的内存大小,这些值随着不同对象是不同的,纵坐标是在某个内存大小上的对象的数量

Heap Viewer的使用

我们说Heap Viewer适合发现内存泄漏的问题,那你知道何为内存泄漏么?

内存泄漏

英文名:Memory Leaks 
标准解释:无用的单纯,但是还是没GC ROOT引用的内存 
通俗解释:该死不死的内存

检测

那么如何检测呢?Heap Viewer中的数值会自动在每次发生GC时会自动更新,那么我们是等着他自己GC么?小弟不才,刚开始我就是这么一直等啊等,由于GC的时机是系统把握的,所以很不好把握,既然我们是来看内存泄漏,那么我们在需要检测内存泄漏的用例执行过后,手动GC下,然后观察data object一栏的total size(也可以观察Heap Size/Allocated内存的情况),看看内存是不是会回到一个稳定值,多次操作后,只要内存是稳定在某个值,那么说明没有内存溢出的,如果发现内存在每次GC后,都在增长,不管是慢增长还是快速增长,都说明有内存泄漏的可能性。

实例

先来看3个图: 
1.刚打开首页,手动GC一下: 
 
2.首页到详情页10遍,最后回到首页,手动GC一下,直到数值不再变化: 
 
3.首页到详情页10遍,最后回到首页,手动GC一下: 
 
data object一栏看到该类型的数值会在不断增长,可能发生了内存泄漏,而我们也可以从上面三个图的标红部分来看,Allocated分别增加了2.418M1.084M,而且你继续这么操作下去,内存依然是增长的趋势

补充

Heap Viewer不光可以用来检测是否有内存泄漏,对于内存抖动,我们也可以用该工具检测,因为内存抖动的时候,会频繁发生GC,这个时候我们只需要开启Heap Viewer,观察数据的变化,如果发生内存抖动,会观察到数据在段时间内频繁更新。

时间: 2024-08-18 09:16:30

Android 性能测试——Heap Viewer 工具的相关文章

Android 性能测试——Memory Monitor 工具

Android 性能测试--Memory Monitor 工具 Memory Monitor能做什么? 实时查看App的内存分配情况 快速判断App是否由于GC操作造成卡顿 快速判断App的Crash是否是因为超出了内存 Memory Monitor使用准备 开发者选项可用 USB调试开启 备注:Android Studio的Enable ADB Integration勾选(Tools/Android下). Memory Monitor面板 首先执行adb devices来确保设备可用,然后启动

Android专项测试之Heap Viewer工具

参考文章:Heap Viewer Heap Viewer能做什么? 实时查看App分配的内存大小和空闲内存大小 发现Memory Leaks Heap Viewer使用条件 5.0以上的系统,包括5.0 开发者选项可用 Heap Viewer启动 可以直接在Android studio工具栏中直接点击小机器人启动: 还可以在Android studio的菜单栏中Tools也可以: 如果你不用Android studio,可以在SDK下的tools下的monitor程序打开: Heap Viewe

Android Developer:Heap Viewer演示

这个演示展示了Heap Viewer工具的基本用法.Heap Viewer实时报告你的应用程序已经分配了什么类型的对象,多少个,和它们在堆内存中的大小. 它的优势: 获取你的应用程序如何分配和释放内存的感觉. 确定内存泄露. 预备条件 ---------------------------------------------------------------------------------------- 一台运行Android5.0或者更高启动开发者选项的手机. 应用程序代码,使用你自己的

Android性能调优篇之Hierarchy Viewer工具的使用

详细内容请查看我的简书地址:Android性能调优篇之Hierarchy Viewer工具的使用 或者我的个人博客地址:Android性能调优篇之Hierarchy Viewer工具的使用

Android性能测试 一些适用于Android Studio的代码审查和性能测试工具

导言: Android应用在CPU占用,内存消耗方面的性能指标是影响产品质量的重要因素,由于QQ管家,360手机助手等应用都提供直观的内存消耗,流量监控功能,致使用户比以往更加关注软件的性能,并以此进行软件选用的决策. 目前,已经有很多可以监控android app 性能的工具可以供开发人员使用,如:基于Eclipse插件体系的MAT,其通过生成.hprof文件对内存泄露情况进行排查:内存检测工具APT:提供CPU利用率实时曲线图,方便对比测试内存泄露问题[图0-1] 图 0-1  通过APT实

android性能测试工具

Android 性能测试工具- Emmagee:http://www.oschina.net/p/emmagee 和 http://www.oschina.net/news/55476/emmagee-2-0-released Android性能测试工具APT:http://code.csdn.net/news/2819366

【腾讯开源】Android性能测试工具APT使用指南

[腾讯开源]Android性能测试工具APT使用指南 2014-04-23 09:58 CSDN CODE 作者 CSDN CODE 17 7833 腾讯 apt 安卓 性能测试 开源 我们近日对腾讯的安卓平台高效的性能测试工具APT团队进行了专访.APT,适用于开发自测和定位性能瓶颈,帮助完成性能基准测试.竞品测试.我们为大家准备了从安装部署到开启APT各功能的介绍资料,方便大家参考. 我们近日对腾讯的安卓平台高效的性能测试工具APT团队进行了专访.APT,Android Performanc

Android性能测试工具Emmagee

下面介绍一个简单实用的Android性能软件 ~~欢迎加入测试群574875837一起讨论研究 一.Emmagee 简介 Emmagee主要用于监控单个App的CPU,内存,流量,启动耗时,电量,电流等性能状态的变化,且用户可自定义配置监控的频率以及性能的实时显示,并最终生成一份性能统计文件.Emmagee是网易杭州研究院QA团队开发的一个简单易上手的Android性能监测小工具. 二.功能介绍 检测应用从启动开始到当前时间消耗的流量数: 检测当前时间被测应用占用的CPU使用率以及总体CPU使用

Android性能测试--内存

前言: 近阶段都在探索android性能测试方面的东西,其中一个很重要的指标就是内存.对于内存,主要是一些gc是不是及时,或者说一些引用有没有及时释放,有没有导致oom或者内存持续增加导致卡顿,有没有大规模的内存抖动.近期项目由于个别模块大改,所以也就想把性能测试的东西在实际项目中实践进去,本文就是针对实践过程进行一下分享. Memory Monitor: 1.1内测实时显示监控 Memory Monitor是android studio自带的一个非常好用的一个检测内存变化的工具,他能实时监控针