性能优化四之Allocation Tracker工具使用
来源:互联网 发布:喵萝脸型数据 编辑:程序博客网 时间:2024/05/12 19:34
Allocation Tracker(AS)工具比AllocationTracker(Eclipse)工具强大的地方是更炫酷,更清晰,但是能做的事情都是一样的。
那它究竟是做什么的呢?
Allocation Tracker是一种内存分配追踪器,可以辨别额外的内存膨胀,这是由于内存的历史浏览记录不断扩充产生的。选择一组仍在堆中的数据或者程序,这组数据堆中,在这个操作里,堆中数据叫作onCreate。这样一来,手机每旋转一次就有新的动作,类似的数据组,基本上就会在堆中膨胀。所以,如果在漏洞存在时旋转手机,垃圾清理无法清除这些数据,就会在堆中产生大量的垃圾。借由分配追踪器,可以弄清这一问题。
使用方法:
1. Allocation Tracker启动
2. 停止Allocation Tracker监听
3. 生成分析文件
面板左上角是所有历史数据文件列表,后面是详细信息,好,现在我们来看详细介绍信息面板:
下面我们用字幕来分段介绍
A:查看方式选项
A标识的是一个选择框,有2个选项
• Group by Method:用方法来分类我们的内存分配
• Group by Allocator:用内存分配器来分类我们的内存分配
不同的选项,在下面显示的信息会不同,默认会以Group by Method来组织,我们来看看详细信息:
从上图可以看出,首先以线程对象分类,默认以分配顺序来排序,当然你可以更改,只需在Size上点击一下就会倒序,如果以Count排序也是一样,Size就是内存大小,Count就是分配了多少次内存,点击一下线程就会查看每个线程里所有分配内存的方法,并且可以一步一步迭代到最底部:
当你以Group by Allocator来查看内存分配的情况时,详细信息区域就会变成如下:
这种方式显示的好处,使我们很好的定位我们自己的代码的分析信息,比如上图中,以包名来找到我们的程序,我们只需要关注我们自己的写的代码即可:
B:Jump To Source按钮
如果我们想看内存分配的实际在源码中发生的地方,可以选择需要跳转的对象,点击该按钮就能发现我们的源码,但是前提是你有源码。
C:统计图标按钮
该按钮比较酷炫,如果点击该按钮,会弹出一个新窗口,里面是一个酷炫的统计图标,有柱状图和轮胎图两种图形可供选择,默认是轮胎图,其中分配比例可以选择分配次数和占用内存大小,默认是大小Size
轮胎图:
轮胎图是以圆心为起点,最外层是其内存实际分配的对象,每一个同心圆可能被分割成多个部分,代表了其不同的子孙,每一个同心圆代表他的一个后代,每个分割的部分代表了某一带人有多人,你双击某个同心圆中某个分割的部分,会变成以你点击的那一代为圆心再向外展开。如果想回到原始状态,双击圆心就可以了。
柱状图:
柱状图以左边为起始点,从左到右的顺序是某个的堆栈信息顺序,纵坐标上的宽度是以其Count/Size的大小决定的。柱状图的内容其实和轮胎图没什么特别的地方。
总结:
上面就是Allocation Tracker的具体用法,Allocation Tracker主要是用于检测发生内存抖动(后续篇章会讲解)所发生的具体的类,可以一步步的跟踪内存的分配情况,对阅读Android源码也有相应的帮助。
- 性能优化四之Allocation Tracker工具使用
- Android性能专项测试之Allocation Tracker(Device Monitor)
- Android性能专项测试之Allocation Tracker(Android Studio)
- Android性能专项测试之Allocation Tracker(Android Studio)
- Android性能专项测试之Allocation Tracker(Device Monitor)
- Android性能专项测试之Allocation Tracker(Device Monitor)
- Android性能专项测试之Allocation Tracker(Android Studio)
- Android性能分析---Allocation Tracker
- 内存分配跟踪工具DDMS –>Allocation tracker 使用
- Android内存优化(四)解析Memory Monitor、Allocation Tracker和Heap Dump
- Android 内存分配跟踪工具(Allocation tracker)
- allocation tracker
- 性能优化工具1——android studio monitors 之 start allocation tracking
- Android Allocation Tracker和TraceView的使用
- Android进阶——性能优化之Android Monitor、MAT、TraceView、Allocation Tracking、Lint的使用
- 性能优化之Traceview工具的使用
- 性能优化六之Lint工具使用
- 性能优化七之TraceView工具使用
- ubuntu14.04 node.js快速安装
- 深入解析struts.xml配置的实现原理
- ANDROID 秒级编译 FREELINE
- java实现直播功能或者视频监控,想用RPT协议,怎样把RPT协议集成到项目中
- UIWebView js oc相互调用的三种方法
- 性能优化四之Allocation Tracker工具使用
- 下周三国内涨油价几成定局
- 通过getChildAt方法取得AdapterView中第n个Item(重新编辑)
- RCaller无法获得R程序的文本结果的处理
- Retrofit用法详解
- android更改应用程序图标无效的问题
- MySQL 用户权限详细汇总
- 台达B2电机 上电前基本参数
- 网页制作HTML