性能测试指标分析2
Android性能指标线:
对支付宝主进程的Cpu、memory、Fps三项加了性能标记线
1、CPU
标记线为20%,当支付宝主进程的cpu占用率(即那条蓝色的线),长期处于标记线之上,说明cpu可能存在异常,需要找对应开发同学进行排查。
2、MEMORY
内存水位:
内存PSS水位合理线为500M,即内存水位在500M以下浮动认为是合理的。
内存增量:
可以对比被测页面打开前和打开后的内存增加,比如图下,打开前260M,打开后内存增加到410,增加了150M的。增量标准是,超过150M的,就属于内存增量较大,需要研发同学去优化页面。
从经验来看,H5的页面增量大,主要还是图片较多、图层复杂、动画较多引起的,如果内存增量大,建议上线前做好降预案,比如去动效,减少图层等。
优化文章可以查看,之前年账单内存优化总结:
https://www.atatech.org/articles/161262
https://www.atatech.org/articles/160437
也可以对应内存详情查看增长的内存属于哪部分。
3、FPS
Fps的标准为滑动时,帧率不能低于20fps。滑动时一直低于20fps属于问题,需要研发同学尝试优化。理论上fps低于20fps后,滑动也会有较明显的卡顿感。
如果Fps为0,需要去开发者选项打开“GPU呈现模式分析”,选为“adb shell dumpsys gfxinfo”。再冷启动后就会有数据。
提醒:Fps的计算方法是通过gfxinfo中的log的卡顿帧换算得出,只有不断滑动时,Fps才有更加准确有意义。
iOS性能指标线:
1、CPU
指标含义:Total代表整机的CPU使用率;App代表被测进程的CPU占用率。
评估方法:重点关注App CPU占有率,App平均CPU占有率参考标准是普通native静态页面应该在5%以内,h5页面或者有复杂动画可以稍微高点,持续超过10%需要关注。Total平均CPU参考标准是70% 以下,如果被测页面超过该参考值,则需要排查优化。如果App CPU占有率过高,会导致出现电量消耗过快、手机发热等现象,优化方向重点关注页面中是否存在动画、绘图、频繁渲染等情况。
2、MEMORY
指标含义:
Memory是统计FootPrint,注:OOM与FootPrint有关,与系统、机型无关。只与RAM有关,如1G内存机器。FootPrint超过650MB,引发OOM。
Xcode MemoryXCode Debug Gauges统计方式即XCode Memory。
Real Memory Xcode Instrument统计方式即Real Memory,实际占用物理内存。注:物理内存与系统策略有关,关注意义不大。
Virtual Memory虚拟内存。
评估方法:
评估内存重点关注FootPrint内存水位和进入页面内存水位增量即可。
内存水位:FootPrint参考标准是 200M 以下,一般情况下,业务内存占用在100M-160M之间;
内存增量:查看进入页面后FootPrint内存增量,参考标准是增量在35M 以内。优化方向重点关注是否存在图片较多、图层复杂、动画较多等情况,通过避免帧动画,使用支付宝现有动效方案(如canvas、lottie等),压缩资源、资源复用、合并图层、裁切透明像素、缩小图片尺寸、减少DOM层级,按需渲染、制定中低端手机降级方案等手段进行解决。
年账单优化案例:
https://www.atatech.org/articles/161262
https://www.atatech.org/articles/160437
3、FPS
指标含义:1秒内游戏画面或者应用界面真实平均刷新次数,俗称帧率/FPS。FPS一般在0-60之间,一般低于24帧时人眼能明显感觉到卡顿;卡顿还取决于帧率是不是有频繁的波动,忽高忽低的帧率也会让人感觉到卡顿。
评估方法:参考标准是:中低端手机,如iPhone 6,滑动页面过程中,FPS不低于30。优化方向重点关注是否存在频繁调用同步方法、加载大量图片、动画卡顿、CPU、内存吃紧、DOM结构复杂、频繁触发重绘、重布局等问题。