移动端性能测试必备工具PerfDog性能狗
移动端性能测试必备⼯具PerfDog性能狗
致移动游戏&应⽤性能测试分析的伙伴们:
你是否会因移动游戏&APP性能问题,⽽备受煎熬?
你⼜是否因寻性能测试分析⼯具,⽽彷徨迷茫?
你是否因⼯具需要,⽽尝试各种ROOT/越狱?
你是否因⼯具准确性,⽽被逼各类花式复测验证?
你是否因⼯具局限性,⽽同时开启N个⼯具?
你⼜是否因⼯具空⽩,⽽被迫各式XCode源码编译?
ROOT/越狱越来越难,你我路在何⽅?
版本编译坑罗密布,你我⼜将守夜到何时?
感恩2021
备受煎熬的时候⼀去不复返了,
因为移动全平台性能测试分析神器来了,
它为移动游戏&APP测试分析⽽⽣,
它就是PerfDog性能狗!
背景:
在项⽬研发⽀持过程中,经历如上障碍和痛苦。我们决定做⼀个完全独⽴、简单易⽤,与APP版本、系统版本、系统平台⽆任何关系的性能平台。
为了保证测试结果的准确性、严谨性和可对⽐性。我们编写了Demo进⾏测试对⽐。
1. iOS平台:
PerfDog测试数据结果与XCode/Instrument(苹果官⽅⼯具需要游戏源码编译测试)测试结果对齐⼀致。性能影响结果:Xcode/Instrument 性能影响较⼤,PerfDog性能影响很⼩。
2. Android平台:天空是蔚蓝窗外有千纸鹤歌名叫什么
安卓平台⽐较关注的是⼯具本⾝对⼿机性能影响,我们在⼩⽶5⼿机上锁死最低频率。开启截图测试影响结果如下:
PerfDog性能影响:CPU占⽐6%-10%(正常频率下CPU占⽐1-3%)。
其他⼯具性能影响:CPU占⽐27%-33%。
备注:
⼯具本⾝性能若影响⼤的话,⼿机容易发热,同时对游戏&应⽤性能有很⼤影响。即测试出性能数据⽆法反应⽤户真实情况。
软件性能数据采集:
PerfDog⽀持移动平台所有应⽤程序(游戏、APP应⽤、浏览器、⼩程序等)及Android模拟器,桌⾯应⽤程序PerfDog⽀持在Windows和Mac机器使⽤运⾏。在iOS和Android平台获取性能参数如下:
iOS平台(与苹果官⽅Xcode⼯具参数对齐⼀致)
Screenshot
FPS(1秒内游戏画⾯或者应⽤界⾯真实平均刷新次数,俗称帧率/FPS)
1) Avg(FPS):平均帧率(⼀段时间内平均FPS)
2) Var(FPS):帧率⽅差(⼀段时间内FPS⽅差)
3) Drop(FPS):降帧次数(平均每⼩时相邻两个FPS点下降⼤于8帧的次数)
Jank(1s内卡顿次数。iOS9.1以下系统暂时不⽀持。类似Android的Jank卡顿和iOS的FramePacing平滑度统计原理。帧率FPS⾼并不能反映流畅或不卡顿。⽐如:FPS为50帧,前200ms渲染⼀帧,后800ms渲染49帧,虽然帧率50,但依然觉得⾮常卡顿。同时帧率FPS低,并不代表卡顿,⽐如⽆卡顿时均匀FPS为15帧。所以,平均帧率FPS与卡顿⽆任何直接关系)
PerfDog计算⽅法:同时满⾜两条件,则认为是⼀次卡顿Jank.
1、当前帧耗时>前三帧平均耗时2倍。
2、当前帧耗时>两帧电影帧耗时(1000ms/24*2=84ms)。
同时满⾜两条件,则认为是⼀次严重卡顿BigJank.
1、当前帧耗时>前三帧平均耗时2倍。
2、当前帧耗时>三帧电影帧耗时(1000ms/24*3=125ms)。
计算思路:考虑视觉惯性,假设以前三帧的平均帧耗时为参考,作为vsync时间间隔,连续两次vsync没有新渲染画⾯刷新,则认为是⼀次潜在卡顿,也就是说下⼀帧耗时⼤于前三帧平均帧耗时2倍,则认为⼀次潜在卡顿。同时单帧耗时满⾜⼤于两倍电影帧耗时1000ms/24*2 (由于⼈眼低于24帧才能辨别画⾯不连续性),则认为是⼀次真正卡顿。同时若单帧耗时⼤于3倍电影帧耗时,则认为是⼀次严重卡顿。
注解:为什么是两次vsync?GPU⼀般是3重缓冲buffer,当前帧已占⽤⼀个buffer,即剩余2缓冲buffer,⼈眼⼀般可容忍2帧延迟。为
什么是两帧电影帧耗时?低于24帧画⾯,⼈眼就能感知到画⾯不连续性,电影⼀般都是24帧。即电影帧耗时1000ms/24=41.67ms,两帧电影帧耗时也就是41.67ms*2,三帧电影帧耗时是41.67ms*3。
1) BigJank:1s内顿严重卡次数
2) Jank(/10min):平均每10分钟卡顿次数。
3) BigJank(/10min):平均每10分钟严重卡顿次数
FTime(上下帧画⾯显⽰时间间隔,即认为帧耗时,iOS9.1以下系统暂时不⽀持。)
1) Avg(FTime):平均帧耗时
2) Delta(FTime):增量耗时(平均每⼩时两帧之间时间差>100ms的次数)
CPU Usage(Total整机/App进程,统计结果合Xcode⼀致)
Memory (是统计FootPrint,注:OOM与FootPrint有关,与系统、机型⽆关。只与RAM有关,如1G内存机器。FootPrint超过650MB,引发OOM)。受iOS平台限制,暂时⽆法获取ios10及以下系统的memory。后续版本增加。如做性能测试,建议升级iOS系统版本Xcode Memory (XCode Debug Gauges统计⽅式即XCode Memory)。受iOS平台限制,暂时⽆法获取ios10及以下系统的Xcode Memory。后续版本增加。如做性能测试,建议升级iOS系统版本
Real Memory(Xcode Instrument统计⽅式即Real Memory,实际占⽤物理内存。注:物理内存与系统策略有关,关注意义不⼤) Virtual Memory(虚拟内存)
Wakeups(线程唤醒次数)。注:超过150进程很⼤可能会被系统kill
CSwitch(上下⽂切换测试)。注:单核超过14000进程会被系统Kill
GPU Utilization(Render/Tilter/Device)
1) Render:渲染器利⽤率(像素着⾊处理阶段,若占⽐⾼,说明是PS阶段出现瓶颈,shader过于复杂或纹理⼤⼩、采样复杂等)
2) Tilter:Tilter利⽤率(顶点着⾊处理阶段,若占⽐⾼,说明是VS阶段出现瓶颈,顶点数太多等原因)
3) Device:设备利⽤率(整体GPU利⽤率)
Network(Recv/Send,测试⽬标进程流量,和Xcode结果⼀致)
Battery Power(整机实时Current电流、Voltage电压、Power功率)(注:和Xcode Instrument结果⼀致)
Log(系统调试⽇志信息)
Android平台
Screenshot
FPS(1秒内游戏画⾯或者应⽤界⾯真实平均刷新次数,俗称帧率/FPS)
1) Avg(FPS):平均帧率(⼀段时间内平均FPS)
2) Var(FPS):帧率⽅差(⼀段时间内FPS⽅差)
3) Drop(FPS):降帧次数(平均每⼩时相邻两个FPS点下降⼤于8帧的次数)
Jank(1s内卡顿次数。解释说明如iOS平台说明)
桌面图标变了1) BigJank:1s内严重卡顿次数
2) Jank(/10分钟):平均每10分钟卡顿次数
3) BigJank(/10分钟):平均每10分钟严重卡顿次数
FTime(上下帧画⾯显⽰时间间隔,即认为帧耗时)
1) Avg(FTime):平均帧耗时
描写寒露的优美句子
2) Delta(FTime):增量耗时(平均每⼩时两帧之间时间差>100ms的次数)
CPU Usage(Total整机/App⽬标进程,统计结果和Android Studio Profiler⼀致)
CPU Clock(各个CPU核⼼的频率和使⽤率)
Memory (PSS Memory,统计结果和Android Java API标准结果⼀致,与Meminfo也⼀致。注:部分三星机器系统修改了Meminfo底层统计⽅式,导致Meminfo与Java AP统计结果不⼀致,新出三星机器已修复)
Swap Memory (Swap Memory)
Virtual Memory
Memory Detail(NativePSS、GFX、GL、Unknown)
GPU Usage(⽬前仅⽀持⾼通芯⽚⼿机)信用社贷款
GPU Frequency(⽬前仅⽀持⾼通芯⽚⼿机)
Network(Recv/Send)
聊天记录删除了怎么恢复
CTemp(CPU温度)
Battery Power(Current电流、Voltage电压、Power功率)(注:与仪器测试误差<3%左右)
Log(系统调试⽇志信息)
Web性能数据管理:
账户信息管理
性能数据管理、图表展⽰、编辑、版本对⽐
性能测试任务管理
使⽤步骤:
步骤1 : Window PC/苹果Mac机器上安装、运⾏PerfDog客户端。
iOS:若PerfDog检测不到连接⼿机或⽆法测试,请先安装确保最新iTunes是否能连上⼿机。
Android:请开启⼿机Debug调试模式及允许USB安装。
步骤2 : 启动PerfDog,然后USB连接⼿机,⾃动检测添加⼿机到应⽤列表中。
iOS:则即插即⽤,⽤户⽆需做任何操作。
Android:有两种模式,⾮安装模式和安装模式。
a. ⾮安装模式:
⼿机即插即⽤,⽆需任何设置及安装,使⽤⾮常简单,但⼿机屏幕上没有实时性能数据显⽰。
b. 安装模式:
需要在⼿机上⾃动安装PerfDog.apk,⼿机屏幕上有实时性能数据显⽰。(请开启Debug调试模式、允许USB安装和PerfDog悬浮窗管理权限),启动PC版,则会在⼿机上⾃动PUSH安装PerfDog.apk,具体安装类似各个⼿机⼚商安装第三⽅APP提⽰安装即可。(注:由于很多⼿机安装需要账号密码,导致⽆法⾃动安装,如果⾃动安装失败,则会把安装⽂件
PerfDog.apk释放到当前⽂件夹⾥,⼿动安装PerfDog.apk即可)。
这⾥重点说明下Android平台下,LMK和Swap这两个参数意义:
LMK:Android平台下OOM与游戏进程内存⼤⼩⽆关,主要是系统剩余物理内存有关。系统剩余物理内存⼩于LMK,则会引起OOM。Swap:系统进程⽤到zram/vnswap内存压缩技术。不同⼿机系统启⽤Swap memeroy⼤⼩不同。
步骤3 : 测试模式。
USB模式测试:
USB连线,在设备列表选择USB图标设备进⾏USB模式测试(插线模式测试功率⽆任何意义)。
WIFI模式测试(测试功率):
USB连线后,在设备列表选择WIFI图标设备进⾏WIFI模式测试。WIFI检测连接成功后,拔掉USB连接线。(注:需要PC和被测⼿机连接同⼀WIFI,WIFI检测连接成功后,拔掉被测⼿机USB线(插线模式测试功率⽆任何意义))。
步骤4 : 选择测试的游戏&应⽤。
PC如图:
Android平台,安装模式下,⼿机屏幕左上⾓有实时性能数据显⽰(Android⼿机请打开PerfDog悬浮窗管理权限,否则⼿机上不会显⽰性能参数)。
功能介绍:
1. 性能参数控制Page:
选择需要收集性能参数,控制性能参数显⽰page。
2. 记录保存:
测试结束时,可⾃主选择两种⽅式保存处理(Upload/Save)性能数据:1)将性能数据同步上传PerfDog云端web看板。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。