内存测试流程和方法

内存测试流程和方法

一.内存测试实现原理:

通过UI自动化脚本,遍历所有场景

通过adb命令间隔2S获取一次数据,写入到文件中

通过脚本把数据绘制成曲线图,同时计算出整个过程中最大值

二.测试方法

1.手工

2.UI自动化

三.内存测试选择场景

1. Activity页面

2. 新需求页面

3. 高频使用页面

四.环境准备

1.机型准备

覆盖低端、中端、高端机型

2.测试环境

应用自身的数据与上次相同

手机整体安装应用与上次相同

手机网络与上次相同

后台不能有其他运行的进程

五.内存测试基准

1.制定内存基准

选择一个稳定的版本,连续跑10次,选取10次峰值中的中位数

2.大版本更新内存基准

版本大迭代,需要更新基准数据

六.测试通过标准

1.自定义标准

1.1 内存大小

与上个版本对比增长不能超过15m,不能增长10%

1.2 内存基准

前台峰值不能超20%,后台峰值不能超基准值的15%

1.3 竞品数据对比

2.竞品对比

内存占用峰值不能大于竞品

3.通用标准-绿色软件联盟

3.1前台占用:

3.2后台亮屏:

3.3后台灭屏:

七.内存基础知识

内存说明:
VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)
PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)
一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS

查看安卓系统对内存容量的分别限制:

1.单个应用的最大内存限制

adb shell getprop | grep heapgrowthlimit

2.应用启动后分配的初始内存

adb shell getprop | grep dalvik.vm.heapstartsize

3.单个Java虚拟机的最大内存限制

adb sehll getprop | grep dalvik.vm.heapsize

八.内存测试过程

1.使用adb监控

adb shell dumpsys meminfo com.kugou.android

每次gc后,pss total没有明显回落,就有可能存在内存泄漏,但仍需长时间观察。

dalvik heap size超过heapgrowthlimit会发生OOM,

但如果Manifest中的application标签中声明android:largeHeap=True,

则dalvik heap达到heapgrowthlimit限制的时候不会出现OOM,

需要达到heap size的时候才会出现OOM

posted @ 2023-06-26 14:39  常疯大虾  阅读(1205)  评论(0编辑  收藏  举报