Android内存测试方法

标准:

1.Android手持设备最大进程内存阀值的50%

2.不允许出现内存泄漏

3.OOM要有异常处理机制

常用工具:

1. DDMS

2. MAT

3. Magnifier(开发中暂未落地)

执行方法:

50%内存阀值监控

查看法

【级别:必须执行】

使用这个步骤基本上就能帮助测试,发现和监控50%进程内存阀值红线的,触及情况。

【方法】

使用DDMS的设备进程管理器(只有调试版apk所产生的进程可以显示在这个列表中,开发版的os会显示所有进程,不管是否是调试版apk)

对列表中选中进程,做update heap操作,就可以在heap标签下看到当前进程所占内存

如果列表是空,看不到这些数据,请点击【cause GC】按钮

可以注重看Allocated字段,和data object字段

Allocated:当前占用内存大小(如果此项超过最大进程内存阀值的50%,点击【cause GC】无法降低,就触及合入红线了)

data object:进程中实例个数

开发分析法

【级别:建议开发执行】

执行这个步骤可以定量,定性内存问题发生的原因,机制。但使用过程比较繁琐,需要多加训练,建议开启培训机制

【方法】

排列法:使用MAT的统计视图排列功能,排列出内存占用最大的对象,然后逐个分析引用关系。

对比法:使用MAT统计视图的对比功能,对比两个hprof文件,发现增量部分,然后通过统治者视图分析引用关系。(可以参看/group/MTC/articles/show/153827木糖醇的【内存杂谈】)

代码静态分析法:直接命中代码,由开发主导,看代码画出对象向量图,分析引用关系。

内存泄漏

使用【查看法】,反复使用相同功能,如果【data object】持续上升,点击【cause GC】也无法回降,就是内存泄漏了,这个是不允许的,触发了合入标准红线

OOM异常处理机制

OutOfMemoryError的异常处理机制,应包括

1. 释放cache内存(比如使用list,vector等所做的缓存,执行clear操作)

2. 调用系统GC方法

3. 打印log,包括模块名称,异常出现的方法名称

4. 重新执行异常前操作,如果依然出现内存不足,直接crash,使用QQ的异常上报机制,上报异常。

案例:

手Q切换帐号内存泄漏

使用【查看法】,发现切换帐号过程中【data object】持续上升,点击【cause GC】也无法回降,用MAT抓取dump,分析结果

android内存测试方法,Android内存测试方法.doc相关推荐

  1. 百度视频在Android和iOS端性能测试方法

    背景介绍 一直以来,性能测试是被一部分人遗忘,又让另一部分人无可奈何的东西.在绝大部分的创业公司,性能测试基本上都是被遗忘的,他们认为功能测试和稳定性测试才是重点,而在中等规模的公司中一部分测试人员考 ...

  2. android都图片mat_Android内存泄露整理

    为什么会产生内存泄漏? 当一个对象已经不需要再使用了,本该被回收时,而有另外一个正在使用的对象持有它的引用从而导致它不能被回收,这导致本该被回收的对象不能被回收而停留在堆内存中,这就产生了内存泄漏. ...

  3. Android 图片缓存之内存缓存技术LruCache,软引用

    Android 图片缓存之内存缓存技术LruCache,软引用

  4. Android性能优化之内存篇(三)

    原文链接:http://hukai.me/android-training-managing_your_app_memory/ http://hukai.me/android-performance- ...

  5. Android使用Handler造成内存泄露的分析及解决方法

    Android使用Handler造成内存泄露的分析及解决方法 参考文章: (1)Android使用Handler造成内存泄露的分析及解决方法 (2)https://www.cnblogs.com/xu ...

  6. android代码实现手机加速功能,Android自定义View实现内存清理加速球效果

    Android自定义View实现内存清理加速球效果 发布时间:2020-09-21 22:21:57 来源:脚本之家 阅读:105 作者:程序员的自我反思 前言 用过猎豹清理大师或者相类似的安全软件, ...

  7. android app增加内存大小,android – 增加分配给应用程序的内存

    我尝试显示相机拍摄的图像并将其显示在应用程序中.当我拍摄低分辨率图像(比如说大小为100kB)时,我没有切换到位图显示的问题,当我以高分辨率(1.5MB)拍摄时,应用程序崩溃,异常 Error jav ...

  8. android如何避免内存泄露,Android开发中应该避免的内存泄露

    一.背景和目的: 目前许多开发人员在Android开发过程中,较少关注实现细节和内存使用,容易会造成内存泄露,导致程序OOM. 本文会通过代码向大家介绍在Android开发过程中常见的内存泄露. 二. ...

  9. android应用内存分析,Android应用程序内存分析-Memory Analysis for Android Applications

    Android应用程序内存分析 原文链接:http://android-developers.blogspot.com/2011/03/memory-analysis-for-android.html ...

最新文章

  1. 在线编辑器 上传控件
  2. 模块式lamp fpm式lamp
  3. UVA10369 Arctic Network
  4. phpStorm安装xDebug
  5. 2.3_ 1_ 进程同步、进程互斥
  6. 突然听到一只公鸡的局域网聊天软件
  7. mysql 密码忘记
  8. rhel5U4下挂在ntfs文件系统
  9. Oracle 19c 安装教程
  10. Ubuntu过去十年的10个关键时刻
  11. Shader 优化相关资料整理
  12. Android开发关于调用摄像头黑屏没反应的问题
  13. [转]PHP FFI详解 - 一种全新的PHP扩展方式
  14. 一区希尔盖服务器找不到,魔兽世界怀旧服:服务器第一成就达成!分享一下心得...
  15. 精通CSS(5.6.3-end)PixyFairypureCSSToolHintscale
  16. 宝塔面板创建数据库时报错数据库管理密码错误处理方案
  17. 多路温度采集控制系统(2)需求分析
  18. ABAP BDC返回成功但是未创建单据或没有产生相应效果
  19. i5 i7 Oracle,Intel Core i5/i7哪款最适合你?Intel Core i5/i7处理器简略对比评测
  20. 【ROCKCHIP瑞芯微芯片平台方案介绍】

热门文章

  1. PHP语言基础简单整理
  2. js获取url后面的参数值
  3. 在一堆人还在犹豫《SEO实战密码》是否值得购买的时候,在下已经收藏了1/10的签名版...
  4. session_cache_limiter(private,must-revalidate)是什么意思
  5. Bailian4102 宠物小精灵之收服【模拟】
  6. 2018 ACM-ICPC Asia Beijing Regional Contest题解
  7. NUC1840 Graveyard Design【尺取法】
  8. HDU2032 杨辉三角【入门+趣味程序】
  9. 古谚、评论与论断、名篇与名言
  10. Hopfield 神经网络及稳态性的证明