重要提示:
- 1. Windows & Mac OS X平台PerfDog客户端版本都支持用户对iOS和Android设备进行测试。PC上PerfDog可多开,单PC可同时测试多台手机。
- 2. PerfDog支持移动平台全部应用程序(游戏、APP应用、浏览器、小程序、小游戏、H五、后台系统进程等)及Android模拟器性能测试。
- 3. 支持APP多进程测试,如Android多子进程及iOS扩展进程APP Extension。
- 4. iOS平台:iPhone小圆点/辅助触控(AssistiveTouch)及iPhone x刘海手机的小白条/引导式访问(Guided Access)影响PerfDog(性能狗)采集数据准确性,请关闭。
注:应用、游戏中关闭小白条/引导式访问(Guided Access)方法:
1. 点击【设置】-【通用】-【辅助功能】-【引导式访问】
2. 开启【引导式访问】,进入游戏后,连按三下电源键,可完全隐藏home键。
3. 若想恢复home键,再按三下电源键便可恢复。
- 5. 截屏记录、Log日志收集会影响性能(总体FPS影响<=1。小米5:CPU=1%左右。iPhone7P:CPU<2%),若无需请不要开启截屏或Log日志收集。
- 6. 提示网络链接失败问题 多是PC网络设置了网络代理或启用了抓包软件,请关闭。
- 7. PerfDog没法检测到手机
Android平台:
1)请开启Debug调试模式(华为设备,须要先开启开发者选项中的 "仅充电"模式下容许ADB调试选项 ,再开启usb调试)。
2)以上还不行,请从新打开PerfDog软件及重启手机。
3)以上还不行,请确认PC上ADB可能被独占(自动化测试框架、Android Studio工具等),请关闭工具及ADB.exe。
4)以上还不行,请用手机管家或手机助手检测下。
iOS平台:
1)须要手机信任。
2)以上还不行,请用itunes软件检测下是否能够链接检测到手机。
3)以上还不行,请重启手机及换USB线(可能USB线老化)。
4)以上还不行,请重启手机。
- 8. 如何收集更多性能参数?
UI右下方+号按钮,自定义性能参数。勾选表示收集,选中对应框表示显示。
- 9. 为何我看不到GPU信息?
Android平台,目前只支持部分高通GPU手机,后期陆续补全。
- 10. 为何手机没法测试电量功率?
只能在WIFI模式下测试电量,USB模式有充电测试无心义。iOS平台下,有无线充电功能手机暂时不支持。
- 11. 为何没法截图?
只在USB模式可以使用。
- 12. 为何手机上看不到性能信息?
请打开手机悬浮窗口显示权限。
- 13. 目前不支持win32系统,后期会支持。
- 14. 各类提示,反正没法使用
请重启手机或换USB线,重启是万能的。
- 15. Android云真机测试流程
手机云真机平台ADB远程调试->Copy远程调试ADB命令信息->本地cmd命令窗口输入刚Copy的ADB命令->回到手机云真机平台确认受权->PerfDog选择云真机测试。
- 16. Android模拟器测试和Android云真机测试流程相似。
- 17. Android手机WIFI模式链接失败?
部分华为、OPPO手机请在仅充电模式下,进行WIFI模式链接。
- 18. iOS手机内存采集一直为0,请重启手机,Energy采集一直是0,请重启测试的APP应用或者游戏。
- 19. Mac11.15系统,须要作安全设置,不然会误报PerfDog为恶意软件,具体设置方法为:打开系统设置->安全性与隐私->通用->点击仍然打开。
- 20. 没法删除PerfDog文件夹,请任务管理器关闭Adb.exe进程。
致移动游戏&应用性能测试分析的伙伴们:
- 你是否会因移动游戏&APP性能问题,而备受煎熬?
- 你又是否因寻找性能测试分析工具,而彷徨迷茫?
- 你是否因工具须要,而尝试各类ROOT/越狱?
- 你是否因工具准确性,而被逼各种花式复测验证?
- 你是否因工具局限性,而同时开启N个工具?
- 你又是否因工具空白,而被迫各式XCode源码编译?
- ROOT/越狱愈来愈难,你我路在何方?
- 版本编译坑罗密布,你我又将守夜到什么时候?
- …
- 备受煎熬的时候一去不复返了,
- 由于移动全平台性能测试分析神器来了,
- 它为移动游戏&APP测试分析而生,
- 它就是PerfDog性能狗!
背景:
在项目研发支持过程当中,经历如上障碍和痛苦。咱们决定作一个彻底独立、简单易用,与APP版本、系统版本、系统平台无任何关系的性能平台。ios
为了保证测试结果的准确性、严谨性和可对比性。咱们编写了Demo进行测试对比。web
1. iOS平台:
PerfDog测试数据结果与XCode/Instrument(苹果官方工具须要游戏源码编译测试)测试结果对齐一致。性能影响结果:Xcode/Instrument性能影响较大,PerfDog性能影响很小。小程序
2. Android平台:
安卓平台比较关注的是工具自己对手机性能影响,咱们在小米5手机上锁死最低频率。开启截图测试影响结果以下:xcode
PerfDog性能影响:CPU占比6%-10%(正常频率下CPU占比1-3%)。浏览器
其余工具性能影响:CPU占比27%-33%。安全
备注:
工具自己性能若影响大的话,手机容易发热,同时对游戏&应用性能有很大影响。即测试出性能数据没法反映用户真实状况。微信
软件性能数据采集:
PerfDog支持移动平台全部应用程序(游戏、APP应用、浏览器、小程序等)及Android模拟器,桌面应用程序PerfDog支持在Windows和Mac机器使用运行。在iOS和Android平台获取性能参数以下:网络
iOS平台 (与苹果官方Xcode工具参数对齐一致)app
- 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.
一、 当前帧耗时>前三帧平均耗时2倍。
二、 当前帧耗时>两帧电影帧耗时(1000ms/24*2=84ms)。
同时知足两条件,则认为是一次严重卡顿BigJank.
一、 当前帧耗时>前三帧平均耗时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结果一致)
- Energy Usage(即为Xcode Energy Impact。监控应用使用的能耗状况(包括CPU、GPU、NetWork、Location、Display (iPhone X only)、Overhead)。(注:和Xcode Energy Impact结果一致。有线模式下测试。Total Energy<270为Low,270 < Total Energy < 1000为High,Total Energy>1000为Very High)。
参考:https://help.apple.com/xcode/mac/11.0/index.html?localePath=en.lproj#/devf7f7c5fcd
- 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版PerfDog.exe,则会在手机上自动PUSH安装PerfDog.apk,具体安装相似各个手机厂商安装第三方APP提示安装便可。(注:因为不少手机安装须要帐号密码,致使没法自动安装,若是自动安装失败,则会把安装文件PerfDog.apk释放到当前文件夹里,手动安装PerfDog.apk便可)。
这里重点说明下Android平台下,LMK和Swap这两个参数意义:
LMK:Android平台下OOM与游戏进程内存大小无关,主要是系统剩余物理内存有关。系统剩余物理内存小于LMK,则会引发OOM。
Swap: 系统进程用到zram/vnswap内存压缩技术。不一样手机系统启用Swap memeroy大小不一样。
-
步骤3 : 测试模式。
-
步骤4 : 选择测试的游戏&应用。
PC如图:
Android平台,安装模式下,手机屏幕左上角有实时性能数据显示(Android手机请打开PerfDog悬浮窗管理权限,不然手机上不会显示性能参数)。

功能介绍:
-
1. 性能参数控制Page:
选择须要收集性能参数,控制性能参数显示page。

-
2. 记录保存:
测试结束时,可自主选择两种方式保存处理(Upload/Save)性能数据:
1) 将性能数据同步上传PerfDog云端web看板。
2) 本地导出Excel文件。
-
3. 记录回放(方便回看分析):
打开要回放文件。
回放结果如图:

-
4. 批注及标定:
鼠标左键双击,增长批注,再次双击,则取消批注。鼠标左键单击,则增长标定,再次点击则从新标定。

-
5. 设定性能参数统计分析阈值、编辑统计参数分析及框选记录保存:
能够经过鼠标框选/拖动查询时间周期内,统计数据等。同时可对框选数据进行保存。工具左侧“Setting”以设定对应的性能参数统计分析阈值等。

-
6. 场景Label标签:
经过标签按钮给性能数据打标签,鼠标左键双击颜色区域可修改对应区域标签名。

-
7. 屏幕记录:
注意:截屏记录开启,影响性能。
-
8. 多进程问题测试:
iOS平台,APP多进程分为APP Extension和系统XPC Server。
好比:企鹅电竞直播软件用到APP Extension扩展进程(扩展进程名LABroadcastUpload)。固然也可能用到系统XPC Server服务进程,如通常web浏览器会用到webkit。
Android平台,通常大型APP,好比游戏有时候是多进程协做运行(微信小游戏,微视等APP及王者荣耀等游戏多子进程),可选择目标子进程进行针对性测试。默认是主进程。如图王者荣耀。
微信小游戏、小程序测试等,以下是微信小游戏-浪漫玫瑰园:
备注:子程序进程名高亮显示,表示当前子进程处于顶层。
-
9. Log日志功能:
采集系统日志信息。

-
10. 中止功能:
无需拔手机,选择Stop Profilling便可中止采集信息。
Web云平台功能介绍: