美文网首页Android
Android性能测试之内存

Android性能测试之内存

作者: Zzz_c7ec | 来源:发表于2017-12-26 17:49 被阅读0次

    内存使用情况的获取,当前主要有如下三种方案:

    1.dumpsys meminfo <package_name> 或dumpsys meminfo <package_id>

    2.AndroidStudio 自带 CPU 和内存检测功能

    3.使用Android自身提供的ActivityManager.MemoryInfo()方法获得

    dumpsys meminfo 或dumpsys meminfo

    参数含义:

    l   Naitve Heap Size: 从mallinfo usmblks获得,代表最大总共分配空间

    l   Native Heap Alloc: 从mallinfo uorblks获得,总共分配空间

    l   Native Heap Free: 从mallinfo fordblks获得,代表总共剩余空间

    l   Native Heap Size 约等于Native Heap Alloc + Native Heap Free

    l   mallinfo是一个C库, mallinfo 函数提供了各种各样的通过C的malloc()函数分配的内存的统计信息。

    l   Dalvik Heap Size:从Runtime totalMemory()获得,Dalvik Heap总共的内存大小。

    l   Dalvik Heap Alloc: Runtime totalMemory()-freeMemory() ,Dalvik Heap分配的内存大小。

    l   Dalvik Heap Free:从Runtime freeMemory()获得,Dalvik Heap剩余的内存大小。

    l   Dalvik Heap Size 约等于Dalvik  HeapAlloc + Dalvik  Heap Free

    重点关注如下几个字段:

    (1) Native/Dalvik 的 Heap 信息中的alloc

    具体在上面的第一行和第二行,它分别给出的是JNI层和Java层的内存分配情况,如果发现这个值一直增长,则代表程序可能出现了内存泄漏。

    (2) Total 的 PSS 信息

    这个值就是你的应用真正占据的内存大小,通过这个信息,你可以轻松判别手机中哪些程序占内存比较大了。

    AndroidStudio 自带 CPU 和内存检测功能

    测试方法

    手机连接电脑,在标1中选择要调试的手机,标注2中选择要检测的应用进程,memory是内存监控,cpu是cpu监控。

    测试时,重点关注两点:

    1)退出某个页面后,内存是否回落。如果没有及时回落,也不一定就是问题,可能程序还没有自动GC,故一般情况下,需要手动GC,如果手动GC后,仍无法回落,此时可以确定有问题。

    2)进行某个操作后,内存增长的过快,也可能存在风险,此时可反复操作进行确认。

    使用Android自身提供的ActivityManager.MemoryInfo()方法获得

    通过该方法获取某应用的内存信息。目前网易的Emmagee工具就是通过该方法实现某应用内存和cpu数据的获取,测试简单方便,安装app以后选中被测应用即可开始测试,界面会展示内存、CPU和流量等数据。完成测试后,可在本地SD卡种保存一份性能测试数据,可以从里面获取内存信息。

    相关文章

      网友评论

        本文标题:Android性能测试之内存

        本文链接:https://www.haomeiwen.com/subject/gezdgxtx.html