【性能测试】移动端应用性能测试浅尝—内存篇

一个好的app不仅要保证功能没有问题,还得不断提高自己的性能。这次就初步接触一下性能测试里面关于内存的内容。


概念

有时候,测一个应用崩溃了,很多时候都会碰到OOM(out of memory)的问题,那我们首先来理解一下OOM的定义到底是什么?我们一点点来看。

首先,关于内存有好几个指标:

VSS:Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)

RSS:Resident Set Size 实际占用的物理内存(包含共享库占用的内存)

PSS:Proportional Set Size 实际使用的物理内存(按比例分配共享库占用的内存),如3个进程,那么进程的消耗就应该是除以3,才表示一个

USS:Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)

一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS,测试中关注的比较多的是 PSS 这个指标。


两种常见的关于内存的bug:

内存溢出(Out Of Memory):通俗理解就是内存不够,通常在运行大型软件或游戏时,软件或游戏所需要的内存远远超出了你主机内安装的内存所承受大小,就叫内存溢出。 系统已经不能再分配出你所需要的空间,比如你需要100M的空间,系统只剩90M了。

内存泄漏(Memory Leak):是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。意思就是你用资源的时候为它开辟了一段空间,当你用完时忘记释放资源了,这时内存还被占用着,一次没关系,但是内存泄漏次数多了就会导致内存溢出。

参考文章:https://www.cnblogs.com/Sharley/p/5285045.html


测试工具

测试的工具有很多,例如Emmage(但是安卓6.0之后就不支持了,可以不考虑)、GT(使用可参考这篇博文),其实直接使用Android Studio里面自带的Memory Monitor就行。

简单分析:启动一个新闻app,进行一些操作,比如看文章,然后返回到列表。如果正文相关的activity还存在的话,那肯定是有问题的。再比如,运行app的时候,某些类内存占比过高,那肯定也是有问题的。

关于指标,一个是竞品分析,一个是自身版本对比 ,这种想要定一个标准出来还是比较困难的。


部分adb命令

adb shell dumpsys meminfo:查看所有内存情况

adb shell meminfo PID:查看某个进程的内存情况

adb shell dumpsys meminfo 应用包名:查看某个应用的内存情况


JAVA垃圾回收机制

https://blog.csdn.net/w372426096/article/details/81360083



参考文章:

https://www.cnblogs.com/hyh-test/p/8629555.html

https://blog.csdn.net/xiaomaoxiao336368/article/details/83547318

你可能感兴趣的:(【性能测试】移动端应用性能测试浅尝—内存篇)