Heap Viewer,Memory Monitor和Allocation Tracker是用来可视化你的app使用内存的补充工具。

  1. 使用Memory Monitor Tool来发现是否有不好的内存回收时间导致你的性能问题。

  2. 执行Heap Viewer来确定获取或者保持不希望或者不必要的对象类型。

  3. 使用Allocation Tracker来确定你的哪里的代码会存在问题。

Memory Monitor

-----------------------------------------------------------------------------------------

  • 在图表中显示你的应用可用的和已使用的内存随时间的变化,伴随着垃圾回收事件发生下降。

  • 提供了一种高速的方式来測试是否App变迟缓和过渡的垃圾回收事件相关。

  • 提供了一个高速的方法来查看是否app的崩溃可能和耗尽内存相关。

  • 在你的应用执行的时候执行,而且每秒钟更新一次。

  • 帮助你高速的识别潜在的内存泄漏。

  • 帮助你的应用程序的GC模式。而且确定它们是否如你所期望的健康执行。

  • 它非常easy使用,而且非常容理解你所看见的。

  • 然而,Memory Monitor不会告诉你你的问题的解决办法是什么对象造成的。或者你哪里的代码造成的。

图1.Memory Monitor

Heap Viewer

-----------------------------------------------------------------------------------------

  • 显示分配对象类型个数的快照。

  • 显示每次垃圾回收事件自然发生或者由你触发的演示样例数据。

  • 帮助你确定什么对象类型可能导致内存泄露。

  • 然后,你必须自己从图中发现发生了什么变化。

图2.Heap Viewer

Aloocation Tracker

-----------------------------------------------------------------------------------------

  • 展示你的代码什么时候,什么地方分配什么对象类型,它们的大小,分配线程。和跟踪栈。

  • 通过反复的分配/释放模式帮助你又一次认识内存流失。

  • 能够和Heap Viewver联合使用来分总内存泄漏。

    比如,假设你看见一个位图对象在堆内存中驻存。你能使用Allocation Tracker查到它的分配地点。

  • 然而,须要时间和经验来学习理解这个工具的输出。

图3.Allocation Tracker

Android Developer:内存分析器的更多相关文章

  1. Android 操作系统的内存回收机制(转载)

    Android 操作系统的内存回收机制(转载) Android APP 的运行环境 Android 是一款基于 Linux 内核,面向移动终端的操作系统.为适应其作为移动平台操作系统的特殊需要,谷歌对 ...

  2. android防止内存溢出浅析

    Android的虚拟机是基于寄存器的Dalvik,它的最大堆大小一般是16M.但是Android采用的是Java语言编写,所以在很大程度上,Android的内存机制等同于Java的内存机制,在刚开始开 ...

  3. android应用内存使用情况

    单个应用程序最大内存限制,超过这个值会产生OOM(内存溢出) 命令:adb shell ->dalvik.vm.heapgrowthlimit 应用启动后分配的初始内存 命令:adb shell ...

  4. 关于Android 的内存泄露及分析

    一. Android的内存机制Android的程序由Java语言编写,所以Android的内存管理与Java的内存管理相似.程序员通过new为对象分配内存,所有对象在java堆内分配空间:然而对象的释 ...

  5. [转] This Android SDK requires Android Developer Toolkit version 23.0.0 or above

    问题描述: This Android SDK requires Android Developer Toolkit version 23.0.0 or above.  Current version ...

  6. 在Eclipse中使用MAT分析Android程序内存使用状况(转)

    对于Android这种手持设备来说,通常不会带有太大的内存,而且一般用户都是长时间不重启手机,所以编写程序的时候必须要非常小心的使用内存,尽量避免有内存泄露的问题出现.通常分析程序中潜在内存泄露的问题 ...

  7. 利用Android Studio、MAT对Android进行内存泄漏检测

    利用Android Studio.MAT对Android进行内存泄漏检测 Android开发中难免会遇到各种内存泄漏,如果不及时发现处理,会导致出现内存越用越大,可能会因为内存泄漏导致出现各种奇怪的c ...

  8. Xamarin Android提示内存溢出错误

    Xamarin Android提示内存溢出错误 错误信息:java.lang.OutOfMemoryError, Consider increasing the value of $(JavaMaxi ...

  9. [轉]Android的内存泄漏和调试

    一. Android的内存机制 Android的程序由Java语言编写,所以Android的内存管理与Java的内存管理相似.程序员通过new为对象分配内存,所有对象在java堆内分配空间:然而对象的 ...

随机推荐

  1. iOS数据持久化 -- Core Data

    Core Data是一个功能强大的层,位于SQLite数据库之上,它避免了SQL的复杂性,能让我们以更自然的方式与数据库进行交互.Core Data将数据库行转换为OC对象(托管对象)来实现,这样无需 ...

  2. Linux-php安装mongodb

    Linux-php安装mongodb 标签(空格分隔): php 安装mongodb 1 下载解压 下载压缩包 :https://www.mongodb.com/download-center?jmp ...

  3. 无滚动条GridView少量图片展示

    import android.content.Context; import android.util.AttributeSet; import android.util.Log; import an ...

  4. Windows下使用VS的ADO访问MySQL

    数据库的访问的一种方式就是:CS结构.即使用TCP/UDP协议进行远程访问,而数据库对于服务端的软件是本地访问!这种管理方式比较常见. 这里主要叙述Windows访问本地数据库的方法. 需要了解几个概 ...

  5. 用Electron开发企业网盘(二)--分片下载

    书接上文,背景见:https://www.cnblogs.com/shawnyung/p/10060119.html HTTP请求头  Range 请求资源的部分内容(不包括响应头的大小),单位是by ...

  6. sql查询 按照规定的顺序返回结果集。

    DECODE函数 oracle 独有,功能强大.相当于 if else if IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN RETURN(翻译值2) ..... ...

  7. js cookie 页面倒计时

    疯了啦 写了一篇没有保存需求:页面倒计时 只从第一次加购开始公共方法cookie的设置 获取function getCookie(c_name){ if (document.cookie.length ...

  8. python之禅---对象与元类

    众所周知,python是一门面向对象的编程语言,python中一切皆对象,那么我们先探讨一下什么是对象. 一.对象 在生活中一个事物就是一个对象,比如:一只猫就是一个对象,猫的体型.猫毛的颜色等是它的 ...

  9. 【BZOJ 1051】[HAOI2006]受欢迎的牛

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] Tarjan算法强连通缩点 . 最后出度为0的点. 如果只有一个. 那么这个"大点"所包含的点的个数就是答案了. ...

  10. 【Codeforces Round #422 (Div. 2) B】Crossword solving

    [题目链接]:http://codeforces.com/contest/822/problem/B [题意] 让你用s去匹配t,问你最少需要修改s中的多少个字符; 才能在t中匹配到s; [题解] O ...