使用内存监测工具 DDMS –> Heap

操作步骤

1.启动eclipse后,切换到DDMS透视图,并确认Devices视图、Heap视图都是打开的,没打开的直接Window>ShowView>自己选

2.将手机通过USB链接至电脑,链接时需要确认手机是处于“USB调试”模式

3.链接成功后,在DDMS的Devices视图中将会显示手机设备的序列号,以及设备中正在运行的部分进程信息;

4.点击选中想要监测的进程,如果在进程列表中未出现你的进程的话随便选中一条让Device一排的工具处于可用状态,再击下Update Heap 让其自动找到我们跑的应用的进程,比如小马临时跑的两个应用进程如图;

5.点击Heap视图中的“Cause GC”按钮;

6.点击Cause GC之后就可以看到我们应用的内存情况如下图:

说明:

1点击“Cause GC”按钮相当于向虚拟机请求了一次gc操作

2当内存使用信息第一次显示以后,无须再不断的点击“Cause GC"

Heap视图界面会定时刷新,在对应用的不断的操作过程中就可以看到内存使用的变化

3 内存使用信息的各项参数根据名称即可知道其意思,不知道具体意思的朋友自行用工具(有道、词霸查去)

知道工具使用了,那么如何才能知道我们的程序是否有内存泄漏的可能性呢。

这里需要注意一个值:Heap视图中部有一个Type叫做data object,即数据对象,也就是我们的程序中大量存在的类类型的对象。

在data object一行中有一列是“Total Size”,其值就是当前进程中所有Java数据对象的内存总量,

如果大家想要看“Total Size”是分配的具体信息可以点击“data object这一行来查看详细信息,如下图”(大家看不清楚的点击看大图)

一般情况下,在data object行的“Total Size”这个值的大小决定了是否会有内存泄漏。可以这样判断:

a) 不断的操作当前应用,同时注意观察data object的Total Size值;

b) 正常情况下Total Size值都会稳定在一个有限的范围内,也就是说由于程序中的的代码良好,没有造成对象不被垃圾回收的情况,

所以说虽然我们不断的操作会不断的生成很多对 象,而在虚拟机不断的进行GC的过程中,这些对象都被回收了,

内存占用量会会落到一个稳定的水平;

c) 反之如果代码中存在没有释放对象引用的情况,则data object的Total Size值在每次GC后不会有明显的回落,

随着操作次数的增多Total Size的值会越来越大,直到到达一个上限后导致进程被杀掉。

android adt带的ddms的heap功能不显示进程,Android内存泄露之DDMS – Heap工具相关推荐

  1. android11beta支持什么手机,Android 11 Beta1发布,新增多种功能,网友:Android基于 Flyme...

    原标题:Android 11 Beta1发布,新增多种功能,网友:Android基于 Flyme 6.11日消息,谷歌于今日凌晨正式推送了 Android 11 Beta 1 版系统,不仅新增了可悬浮 ...

  2. Android Studio 选项菜单和动画结合_Android性能测试③-发现和定位内存泄露amp;卡顿...

    Android性能测试③-发现和定位内存泄露&卡顿 Android用户也许会经常碰到以下的问题: 1)应用后台开着,手机很快没电了--应用耗电大: 2)首次/非首次启动应用,进入应用特别慢-- ...

  3. android 添加附件功能,Android实现带附件的邮件发送功能

    本文实例讲解了基于基于jmail实现android邮件发送功能,分享给大家供大家参考,具体内容如下 在android上发送邮件方式: 第一种:借助gmail app客户端,缺点是必须使用gmail帐号 ...

  4. android 信息添加附件功能,Android实现带附件的邮件发送功能

    本文实例讲解了基于基于JMail实现Android邮件发送功能,分享给大家供大家参考,具体内容如下 在android上发送邮件方式: 第一种:借助GMail APP客户端,缺点是必须使用GMail帐号 ...

  5. android libc 有哪些函数_Android scudo功能介绍

    一 简述 前面介绍了malloc_debug功能,用来进行内存泄露等检测,其实android可以使用多种方法进行内存相关的监控.比如利用llvm功能再编译时添加内存的相关检测.Android R默认开 ...

  6. android中momery检测,Android性能优化第(二)篇---Memory Monitor检测内存泄露

    版权声明:本文为LooperJing原创文章,转载请注明出处! 多练习多写代码.jpg 上篇说了一些性能优化的理论部分,主要是回顾一下,有了理论,小平同志又讲了,实践是检验真理的唯一标准,对于内存泄露 ...

  7. Android App内存泄露测试方法总结

    和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一.内存泄露 二. Android的GC机制 三.为什么会内存泄露 四. 系统级别的内存管理 五.内存抖 ...

  8. Android开发笔记——常见BUG类型之内存泄露与线程安全

    一.内存泄露 1.很抱歉,"XXX"已停止运行.OOM? 怎样才能让app报OOM呢?最简单的办法如下: Bitmap bt1 = BitmapFactory.decodeReso ...

  9. Android之内存泄露、内存溢出、内存抖动分析

      内存 JAVA是在JVM所虚拟出的内存环境中运行的,内存分为三个区:堆.栈和方法区. 栈(stack):是简单的数据结构,程序运行时系统自动分配,使用完毕后自动释放.优点:速度快. 堆(heap) ...

最新文章

  1. VM结构、GC工作机制详解
  2. “火震”太多打乱NASA计划,火星探测计划将推迟到2022年底
  3. bzoj3993: [SDOI2015]星际战争(二分+最大流)
  4. Genymotion模拟器
  5. 为什么大部分程序员看不起PHP这门语言?
  6. 用Visual Studio Code调试nodejs
  7. TCanvas 学习
  8. c语言枚举如何当函数返回值,C语言学习五 — 数组与枚举
  9. 面向对象特性、使用面向对象编程的场合
  10. 给EditText的drawableRight属性的图片设置点击事件
  11. 括号匹配问题(九度教程第 26 题)
  12. 关于var、let和const
  13. SLAM--BA优化
  14. 毕马威it咨询 java_【毕马威(KPMG)工资】it咨询师待遇-看准网
  15. ACM / ICPC 在线OJ(Online judge)
  16. 计算机网络管理员路由与交换深圳积多少分,深圳积分入户初级证可以 累积加分吗,你需要知道这些!...
  17. 专利法上的抽象思想与具体技术 ——计算机程序算法的客体属性分析
  18. Exception in thread' main” java. 1ang. Runt imeException: Error while running command to get file pe
  19. 追溯世界第一个物联网系统:可乐机“Only”
  20. unity3d布娃娃2

热门文章

  1. 今晚直播丨Oracle DataGuard 备份恢复最佳实践
  2. 如何将 Oracle 单实例数据库转换为RAC数据库?
  3. DBA:介里有你没有用过的“CHUAN”新社区版本Redis6.0
  4. 5招教你实现多线程场景下的线程安全!
  5. 面试官:你知道怎么求素数吗?
  6. 详解Java中static关键字和final关键字的功能
  7. java中的NIO和IO到底是什么区别?20个问题告诉你答案
  8. 掌握ROMA Compose,报表清单不秃头
  9. 业务爆发式增长,音视频服务如何做好质量监控与优化?
  10. 规模化敏捷框架何从入手?这篇文章把SAFe讲透了!