• Android内存泄露测试


    Android性能测试过程中的一些常用命令:

    CPU:

    adb shell top -n 1| grep "+PackageName

    内存:

    adb shell dumpsys meminfo "+PackageName

    流量:

    adb shell cat /proc/Pid/net/dev

    电量:

    adb shell dumpsys battery

    列出所有包名:

    adb  shell  ps

    关于android性能测试,这里有系列文章,写的比较完善,可以参考:https://testerhome.com/wiki/androidperformancebytestly

    ~~~~~~~~~~~~~~~~~~

    Android下,如何进行内存泄露的测试,除了长时间运行的间接测试,有没有工具帮助我们进行这方面测试呢?(下文参考:http://blog.csdn.net/amy0428/article/details/7057282)

    首先,安装 MAT

    和其他插件的安装非常类似,MAT 支持两种安装方式,一种是“单机版“的,也就是说用户不必安装 Eclipse IDE 环境,MAT 作为一个独立的 Eclipse RCP 应用运行;另一种是”集成版“的,也就是说 MAT 也可以作为 Eclipse IDE 的一部分,和现有的开发平台集成。

    网上都是Eclipse中,点击Help,install new software,work with中输入网址,记得点击Add,Next,Next即可。

    如果不行,也不要担心,下载下来自己装,链接如下:

    (下载地址:www.eclipse.org/downloads/download.php?file=/mat/1.1.1/MemoryAnalyzer-1.1.1.201108240735.zip )

    http://www.eclipse.org/downloads/download.php?file=/mat/1.1.1/MemoryAnalyzer-1.1.1.201108240735.zip

    install new software,Achieve中输入刚下载下的zip文件,Next,Nex安装搞定。

    其次,配置环境参数

    安装完成之后,为了更有效率的使用 MAT,需要做一些配置工作。因为通常而言,分析一个堆转储文件需要消耗很多的堆空间,为了保证分析的效率和性能,在有条件的情况下,我们会建议分配给 MAT 尽可能多的内存资源。你可以采用如下两种方式来分配内存更多的内存资源给 MAT。

    一种是修改启动参数 MemoryAnalyzer.exe -vmargs -Xmx4g

    另一种是编辑文件 MemoryAnalyzer.ini,在里面添加类似信息 -vmargs – Xmx4g。生成.hprof文件:在Eclipse中的DDMS中选择要测试的进程,然后点击Update Heap 和Dump HPROF file两个Button。

    .hprof 文件会自动保存在电脑上,把 .hprof 文件拷贝到PC上的 android-sdk-windows ools目录下。这个由DDMS生成的文件不能直接在MAT打开,需要转换。

    运行cmd打开命令行,cd到 android-sdk-windows ools所在目录,并输入命令hprof-conv xxxxx.hprof yyyyy.hprof,其中xxxxx.hprof为原始文件,yyyyy.hprof为转换过后的文件。转换过后的文件自动放在android- sdk-windows ools 目录下。

    OK,到此为止,.hprof文件处理完毕,可以用来分析内存泄露情况了。 打开MAT:

    在Eclipse中点击Windows→Open Perspective→Other→Memory Analysis 导入.hprof文件

    在MAT中点击 File→Open File,浏览到刚刚转换而得到的.hprof文件,并Cancel掉自动生成报告,点击Dominator Tree,并按Package分组,选择自己所定义的Package 类点右键,在弹出菜单中选择List objects→With incoming references。

    这时会列出所有可疑类,右键点击某一项,并选择Path to GC Roots→exclude weak/soft references,会进一步筛选出跟程序相关的所有有内存泄露的类。据此,可以追踪到代码中的某一个产生泄露的类。因为此处会把所有可疑地方都罗列出 来,需要RD进一步分析确定。

  • 相关阅读:
    实现斐波那契数列的三种方式
    [LintCode]计算两个数的交集(二)
    [LintCode]计算两个数的交集(一)
    JNI技术概念小结
    require.js的用法
    JavaScript中模块“写法”
    模块化的JavaScript
    javascript如何判断访问网页的设备及是否支持触屏功能
    Javascript自由拖拽类
    JQuery中html()方法的注意事项
  • 原文地址:https://www.cnblogs.com/haochuang/p/4211120.html
Copyright © 2020-2023  润新知