Android开发响应检测及内存分析 - 【Heap】
来源:互联网 发布:联合办学的网络教育 编辑:程序博客网 时间:2024/06/04 22:31
Heap监测应用进程-内存使用情况
1. 启动eclipse后,切换到DDMS透视图
2. 连接手机确认手机是处于“USB调试”模式
3. 点击选中想要监测的进程并点击选中Devices视图界面中最上方一排图标中的“Update Heap”图标(如下图)
4. 点击Heap视图中的“Cause GC”按钮(清理内存,一次即可),内存的相应数据就会显示
一句话概括数据的意思:当前堆内存大小为23.508M,已分配内存15.306M,共释放8.202M内存,当前堆内存使用率65.11%,内存中对象总数为81168个(好多啊…)。
通常情况下Heap窗口提供的参数中ABCD四个数据最直观的体现出当前应用的状况。
A:Android 的图片(也就是Bitmap) 通常以Byte[]形态在内存中,假设应用在运行过程中,A行的Count和Total Size值一直处于上升状态,没有回落,这是可以考虑应用的关于图片内存是否得到很好的管理和释放,否则到达一个上限后导致OOM(内存溢出)。
B:data object,即数据对象,也就是程序中大量存在的类,类型的对象。dataobject的数值主要体现了应用中内存对象的数值状况。data object一行中的“Total Size”列,其值就是当前进程中所有Java数据对象的内存总量,一般情况下,这个值的大小决定了是否会有内存泄漏。如上图所示:数据对象52867个占用内存2M,当然没有A处Byte[]占用的内存大。如果程序在不断的运行中,data object的Total Size数值也不断增加,即使退出应用或者点击GC按钮,数值依然不会有明显回落,那么可以考虑程序中是否存在内存泄露的可能?!
C:当前内存的使用率,不多说,当然这个值是越低越好了,个人所见优秀的应用的Usd值都会保持在50%~75%,而且都是以一个中间值上下浮动。
D:当前内存对象的总数。
总之Heap视图可以直接的告诉我们,正常情况下各值都会稳定在一个有限的范围内,也就是说由于程序中的的代码良好,没有造成对象不被垃圾回收的情况,所以说虽然我们不断的操作会不断的生成很多对象,而在虚拟机不断的进行GC的过程中,这些对象都被回收了,内存占用量会会落到一个稳定的水平;反之如果代码中存在没有释放对象引用的情况,则Objects 和data object、1-byte array的Total Size值在每次GC后不会有明显的回落,随着操作次数的增多Total Size的值会越来越大。
- Android开发响应检测及内存分析 - 【Heap】
- Android开发响应检测及内存分析 - 【StrictMode】
- Android开发响应检测及内存分析 - 【TraceView】
- android heap 检测内存
- Android Eclipse/Heap检测和分析Android应用内存
- eclipse 使用Heap检测和分析Android应用内存
- 你不知道的Eclipse用法:使用Heap检测和分析Android应用内存
- 【安卓基础四】adb命令使用Heap检测和分析Android应用内存
- Android开发过程中内存泄露检测及工具
- 利用Android中DDMS->Heap工具检测内存泄漏问题
- Android内存监测工具DDMS->Heap,内存分析工具->MAT
- Android内存监测工具DDMS->Heap,内存分析工具->MAT
- Android内存监测工具DDMS->Heap,内存分析工具->MAT
- Android内存监测工具DDMS->Heap,内存分析工具->MAT
- Android内存监测工具DDMS->Heap,内存分析工具->MAT
- Android内存监测工具DDMS->Heap,内存分析工具->MAT
- Android内存监测工具DDMS->Heap,内存分析工具->MAT
- Android内存优化及内存泄漏检测
- 解决UITableView在iOS7中UINavigationController里的顶部留白问题
- JAVA调用Oracle分页SQL用法
- 尾盘股价从跌停蹿至涨停有研新材被国华人寿举牌
- Haskell趣学指南学习日记(2)
- 数据采集器服务——Socket(今天才发现AES加解密代码跟贴的时候不一样,貌似乱码,不知什么情况)
- Android开发响应检测及内存分析 - 【Heap】
- pl/sql developer 中文字段显示乱码
- TT内存清理 --- 悬浮窗、自定义View
- 文章标题
- 开始使用Android Sutdio(四)Android Studio的配置
- linux 内核代码的offsetof()宏
- JAVA中Collections.sort()实现List排序的公共方法和自定义方法
- opencv cvResizeWindow cvMoveWindow cvNamedWindow
- 在sql里面加判断条件