当应用实现了新功能后,准备发布版本前,必须进行性能测试以肯定没有性能问题,内存使用状况即是其中必需要测试的性能之一。因为内存组成的复杂性,并无简单通用的方法可以发现全部的内存问题。有时候由于问题比较明显,就真的发现了问题,可是对于较为成熟的软件,并非那么容易发现内存问题。如今从内存测试流程、内存测试方法、内存占用的评判建议三个方面总结以下,但愿能提高内存测试的有效性。缓存
内存测试流程网络
1)代码:保证没有附加多余的Log和调试用组件工具
2)测试场景:新开发的功能,只须要对该功能进行性能测试,所以测试场景包括该功能的开启前、运行、结束后等测试点;另外一类是总体性能,考察应用的常见场景,在综合使用状况下的性能指标,测试场景应当包括启动后待机、切换到后台、执行主要功能以及反复执行各功能。在两类场景中,重点关注:性能
①包含了图片显示的界面;测试
②网络传输大量数据;设计
③须要缓存数据的场景调试
3)场景转换成用例:选取了测试场景以后,针对内存测试的特色设计用例,对APP内存变化做对比;将测试场景转化为脚本,长时间运行泛灵犀功能,比较操做先后内存的变化来评估测试APP的内存图片
4)执行:将采集到的数据以图形的形式展示,观察内存的波动内存
5)分析:分析内存时重点关注以下几个字段:开发
Native/Dalvik 的 Heap ,分别给出的是JNI层和Java层的内存分配状况,若是发现这个值一直增加,
则表明程序可能出现了内存泄漏;
Total 的 PSS 信息,表明应用真正占据的内存大小,经过它能够判别手机中哪些程序占内存比较大了。
内存占用评判建议
经过性能监控工具进行性能评测时,得出的结果不知道内存cpu波动是否在预期以内,不懂得如何评估。通过了解,能够从如下几个方面考虑:
1)首先与有该功能的以往版本和竞品作对比,得出内存的差值
好比对一个APP每一个版本都作内存占用评测,在对比与以往版本。也会对竞争对手在内存上的消耗量,经过内存的差值能够较为直观地判断出该版本的内存占用状况。
2)若以前版本和竞品都无该功能,可将应用的基本功能消耗的内存做为参考
3)内存有无泄漏
判断内存是否泄漏的方法是:在APP测试过程当中是否存在由于内存不足致使的应用crash;内存是否存在持续上涨的状况。针对上图泛灵犀主动状况下的内存占用,可从内存有无泄漏角度分析。
4)内存峰值是否在单个应用所容许的最大值以内
最大值可参考:手机硬件配置;系统所容许的最大值;相比相似应用的峰值。在手机的设置、用用程序管理器、应用程序信息中能够看到应用所占用的手机内存大小。若某个功能的内存峰值小于该应用所占内存,基本是符合预期的。