美文网首页
内存测试

内存测试

作者: KrisGu | 来源:发表于2017-07-04 18:35 被阅读0次

一、查看内存大小

查看单个应用程序最大内存限制的方式:

1.内存数据文件地址: android手机内部 system/build.prop

adb pull  system/build.prop 本地路径

打开该文件,查看对应的内存信息

2.另一种查看方式,使用命令行

adb shell  getprop | grep heapgrowthlimit

得到对应的结果

[dalvik.vm.heapgrowthlimit]: [128m]

PS:当然adb shell  getprop 还有可以得到其他。build.prop文件中包含的数据应该都可以获取,还没有具体去使用。

二、查看内存的方式

adb shell dumpsys meminfo <package-name>

结果如下:

看到这个图,其实都不陌生了,但是具体该看什么呢?先简单分析下:

1.dalvik就是我们平常说的java堆,我们创建的对象是在这里面分配的。

2.native是被native堆使用的内存。应该指使用C\C++在堆上分配的内存。

所以我们查看的大小是 dalvik heap(单位为KB,注意换算)不能超过最大限制(heapgrowthlimit)

另外一些参数含义:

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

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

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

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

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

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

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

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

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

我们关注主要就是 native和dalvik的heap size,通过自动化或手工测试,查看heap size 是否处于一直增长的状态,若一直增长,可能会出现oom的情况。

结果分析: 可以查看 https://developer.android.com/reference/android/os/Debug.MemoryInfo.html  具体字段意义

linux系统或者Android 系统内存大多是共享的,所以单独计算使用的内存是特别困难。 

1.pss:proportional set size  Pss数字是内核计算的衡量内存共享的度量标准,基本上每个页面的RAM都是通过使用该页面的其他进程的数量进行缩放。这样,您可以(理论上)将所有进程中的pss加起来,以查看它们正在使用的总RAM,并比较进程之间的pss,以了解它们的相对权重。

2.private Dirty:另一个有趣的指标是PrivateDirty,它基本上是不能被分页到磁盘的进程内的RAM量(它不受磁盘上相同的数据支持),并且不与任何其他进程共享。另一种看待这种情况的方法是当该过程消失时(可能很快将其纳入高速缓存和其他用途),RAM将可用于系统。

3.private Clean: 未找到合适的说明,猜测就属于未使用的私有的磁盘大小

4.Swapped Dirty:未找到合适的说明,猜测交换的磁盘控件的大小

三、Memory Monitor

前提:一定是debug 的包,release的包无法查看

可参考该文章进行内存泄漏操作查看

http://www.cnblogs.com/linguanh/p/5601232.html 

具体可查看https://developer.android.com/studio/profile/am-hprof.html?#hprof-snapshot

https://developer.android.com/studio/profile/am-allocation.html,英文水平不佳,准备开始翻译

相关文章

  • 客户端专项一些相关测试随笔

    内存泄漏、性能测试、稳定性测试 一、内存泄漏 内存泄漏的原因:https://blog.csdn.net/hizh...

  • 移动端测试经验-专项测试

    专项测试测什么? 资源类性能测试 Ø CPU占用 Ø 内存占用/内存泄漏 Ø 低资源环境表现 Ø 弱网络测试 速度...

  • 内存测试

    一、查看内存大小 查看单个应用程序最大内存限制的方式: 1.内存数据文件地址: android手机内部 syste...

  • Instruments--使用instrument测试是否内存泄

    使用instrument测试内存泄露 工具 Allocations 使用标记,可以更省事省力的测试页面是否有内存泄...

  • JVM内存限制

    JVM内存限制方法测试JVM有相关内存限制,具体测试方法:java -Xmx1024m -version,中间的-...

  • APP性能专项测试(二)-- 内存占用测试

    App内存测试方法总结: 首先废话不多说,内存测试当然可以用工具测试,像GT之类的,不过像安卓7.0以上的用...

  • 安卓专项测试

    为什么要做专项测试,专项测试的范畴有哪些,常用的工具有哪些,如何制定专项测试计划 启动时间 首屏 内存泄漏/内存溢...

  • Mac 安装Myeclipse 提示虚拟内存不足!

    通过执行: memory_pressure -l critical 用系统内存压力测试进程占满内存,同时看内存交换...

  • 堆 异常

    OutOfMemoryError 测试代码 结果 解决方法 内存大小: 增加堆内存大小

  • 4.7 内存测试

    被测试工程profile方式运行于手机,选择leaks 1 每次申请内存块的大小和分配 2 内存泄漏点 3 应用所...

网友评论

      本文标题:内存测试

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