zoukankan      html  css  js  c++  java
  • monkey内存泄露

    monkey内存泄露

    1.内存泄露发现方法

    执行monkey测试时有时会有内存泄露情况,可以进行排查

    a.手机弹出out of  memory对话框--基本确定有内存泄露

    b.手机没有提示但是实际有内存泄露:排除方法通过logcat文件GC输出lgo信息,搜关键词GC,如果有下面四个中的一个,就可能存在内存泄露。(可以打开两个命令窗口,一个执行adb logcat,再执行monkey,待monkey结束后,ctrl+c中断log抓取)

    GC_FOR_ALLOC, 因为在分配内存时内存丌够引发的

    GC_EXPLICIT, 表明GC被显式请求触发的,如System.gc调用

    GC_CONCURRENT,  表明GC在内存使用率达到一定的警戒值时,自动触发

    GC_BEFORE_OOM, 表明在虚拟机抛出内存丌够异常OOM之前,执行最后一次回收内存垃圾

    2.发现内存泄露--内存报告分析(利用hprof参数的内存快照生成内存报告)

    在发现内存泄露后,可以执行相同的monkey,只需多加一个参数--hprof 

    adb shell monkey -p 包名  --hprof --throttle 100  --pct-touch 50 --pct-motion 50 -v -v -v 1000 >c:monkey.txt

    如果指定了这个选项,monkey会在发送时间的前后生成app内存快照文件,一般会在手机设备的/data/misc目录下生成hprof的文件。(注:  /data/misc  需要root权限,可

    以在手机上安装个RE查看或通过手机助手查看)

    ps:文件转换:配置monkey测试时的sdk-tools下查看是否hprof-conv命令,在命令行输入hprof-conv -help得知文件转化用法,直接转化就行,由.hprof转化成.conv格式。

    转化后的文件用eclipse的Memory Analyzer tool(MAT)查看(此插件可以下载),可以点击 Reports->Leak Suspects链接来生成报告。

  • 相关阅读:
    关于java异常处理的自我学习
    html学习
    java第七周动手动脑
    作业
    动手动脑
    我要建立自己的java代码仓库
    第三周作业
    day0319 模块
    day0318装饰器和内置函数
    day0315 迭代器
  • 原文地址:https://www.cnblogs.com/liuliu-word/p/7210815.html
Copyright © 2011-2022 走看看