PerfDog是腾讯出品的移动端性能测试工具,致力于提升移动应用和游戏的性能和品质,主打游戏APP,当然应用APP也能用。
介绍:
移动全平台iOS/Android性能测试、分析工具平台。快速定位分析性能问题,提升APP应用及游戏性能和品质。手机无需ROOT/越狱,手机硬件、游戏及应用APP也无需做任何修改,极简化即插即用。
PerfDog支持移动平台所有应用程序(游戏、APP应用、浏览器、小程序、小游戏、H5、后台系统进程等)、Android模拟器、云真机等性能测试。支持APP多进程测试(如Android多子进程及iOS扩展进程APPExtension)。
Windows&MacOSX平台PerfDog桌面应用程序版本都支持对iOS和Android设备进行测试。PC上PerfDog可多开,单PC可同时测试多台手机。
安装及运行:
Windows平台:解压下载包,双击打开PerfDog.exe桌面应用程序。
Mac平台:直接运行dmg桌面应用程序。
步骤2:USB连接手机,自动检测添加手机到应用列表中。
Android:有两种模式,非安装模式和安装模式。(注:请开启手机USB调试模式及允许USB应用安装。)。
非安装模式:
手机即插即用,无需任何设置及安装,使用非常简单,但手机屏幕上没有实时性能数据显示。安装模式:需要在手机上自动安装PerfDog.apk,手机屏幕上有实时性能数据显示(允许USB应用安装和PerfDog悬浮窗管理权限),启动PC版PerfDog.exe,则会在手机上自动PUSH安装PerfDog.apk,具体安装类似各个手机厂商安装第三方APP提示安装即可。(注:由于很多手机安装需要账号密码,导致无法自动安装,如果自动安装失败,则会把安装文件PerfDog.apk释放到当前文件夹里,手动安装PerfDog.apk即可)。此模式下,在测试过程中,可能由于系统资源紧缺会killPerfDog显示app(手机界面性能数据显示),但不影响正常测试功能。
步骤3:测试模式
USB模式测试:USB连线后,在设备列表选择USB图标设备进行USB模式测试
WIFI模式测试(测试功率):只能在WIFI模式测试功率等信息。USB连线后,在设备列表选择WIFI图标设备进行WIFI模式测试。WIFI检测连接成功后,拔掉USB连接线。(注:需要PC和被测手机连接同一WIFI,WIFI检测连接成功后,拔掉被测手机USB线(USB模式测试功率无任何意义,会充电))(备注:一般公司WIFI可能做了安全策略限制,导致iOS平台在公司WIFI下无法使用)
步骤4:选择测试的游戏&应用
PC如图:
Android平台,安装模式下,手机屏幕左上角有实时性能数据显示(Android手机请打开PerfDog悬浮窗管理权限,否则手机上不会显示性能参数)
软件性能数据采集:
iOS平台(苹果官方Xcode工具参数对齐。注:iOS系统对进程性能参数做严格限制,超过限制则会被系统kill)
ScreenShot(只支持USB模式)
FPS(1秒内游戏画面或者应用界面真实平均刷新次数,俗称帧率/FPS)
Jank(1s内卡顿次数。iOS9.1以下系统暂时不支持。类似Android的Jank卡顿和iOS的FramePacing平滑度统计原理。帧率FPS高并不能反映流畅或不卡顿。比如:FPS为50帧,前200ms渲染一帧,后800ms渲染49帧,虽然帧率50,但依然觉得非常卡顿。同时帧率FPS低,并不代表卡顿,比如无卡顿时均匀FPS为15帧。所以平均帧率FPS与卡顿无任何直接关系)
1)BigJank:1s内严重卡顿次数
2)Jank(/10min):平均每10分钟卡顿次数。
3)BigJank(/10min):平均每10分钟严重卡顿次数
PerfDogJank计算方法:
1.同时满足以下两条件,则认为是一次卡顿Jank.
a)当前帧耗时>前三帧平均耗时2倍。
b)当前帧耗时>两帧电影帧耗时(1000ms/24*2=84ms)。
2.同时满足两条件,则认为是一次严重卡顿BigJank.
b)当前帧耗时>三帧电影帧耗时(1000ms/24*3=125ms)。
1)Avg(FTime):平均帧耗时
CPUUsage(TotalCPU表示整机CPU使用率,AppCPU表示进程CPU使用率,统计结果和Xcode一致,PerfDog使用率=Xcode使用率/核心数。备注:iOS平台CPUUsage是未规范化CPU使用率。
Memory(是统计FootPrint,注:OOM与FootPrint有关,与系统、机型无关。只与RAM有关,如1G内存机器。FootPrint超过650MB,引发OOM)。注:PerfDog暂时在iOS9、10系统无法获取,其他版本ok。后续版本增加。如做性能测试,建议升级iOS系统版本
XcodeMemory(XCodeDebuggauges统计方式即XCodeMemory)。注:iOS9、10系统暂时无法获取,其他版本ok。后续版本增加。如做性能测试,建议升级iOS系统版本。
VirtualMemory(虚拟内存)
CSwitch(上下文切换测试。注:单核超过14000进程会被系统Kill。ContextSwitchLimit14000(Core/Second)
GPUUtilization
1)Render:渲染器利用率(像素着色处理阶段,若占比高,说明是PS阶段出现瓶颈,shader过于复杂或纹理大小、采样复杂等)
2)Tiler:Tiler利用率(顶点着色处理阶段,若占比高,说明是VS阶段出现瓶颈,顶点数太多等原因)
3)Device:设备利用率(整体GPU利用率)
Network(Recv/Send,测试目标进程流量,统计结果和Xcode一致)
BTemp(电池温度)
BatteryPower(整机实时Current电流、Voltage电压、Power功耗)
注1:20s获取一次,目前最精准的统计方式,结果和Batterylife结果一致,支持所有iOS机型
注2:Sum(Battery)是耗电量。
EnergyUsage(即为XcodeEnergyImpact。监控应用使用的能耗情况(包括CPU、GPU、NetWork、Location、Display(iPhoneXonly)、Overhead)。(注:和XcodeEnergyImpact结果一致。有线模式下测试,支持iOS9及以上系统。TotalEnergy<=270为Low,270
Log日志采集(WIFI模式下,不支持Log收集)
Android平台
3)Drop(FPS):降帧次数(平均每小时相邻两个FPS点下降大于8帧的次数)
备注:高阶FPS功能-Android窗口与FPS
Jank(1S内卡顿次数。解释说明如iOS平台说明)
2)Jank(/10分钟):平均每10分钟卡顿次数。
3)BigJank(/10分钟):平均每10分钟严重卡顿次数
CPUUsage(传统CPU利用率,也叫未规范化CPU利用率,TotalCPU表示整机未规范化CPU使用率,AppCPU表示进程未规范化CPU使用率。备注:统计结果和AndroidStudioProfiler一致。
CPUUsage(Normalized)(规范化CPU利用率,TotalCPU表示整机规范化CPU使用率,AppCPU表示进程规范化CPU使用率。备注:建议参考规范化CPU利用率,性能参考更精准。
CPUClock(各个CPU核心的未规范化频率和未规范化使用率)
CPUClock(Normalized)(各个CPU核心的规范化频率和规范化使用率)
Memory(PSSMemory,统计结果和AndroidJavaAPI标准结果一致,与Meminfo也一致。注:部分三星机器系统修改了Meminfo底层统计方式,导致Meminfo与JavaAP统计结果不一致,新出三星机器已修复)
SwapMemory(SwapMemory,部分设备支持Swap功能,在启用Swap功能后,系统会对PSS内存进行压缩,Swap增加,PSS会相应减少,由于压缩会占用CPU资源,同时相应会导致FPS降低)
VirtualMemory(VSS)
MemoryDetail(NativePSS、GFX、GL、Unknown)
GPUFrequency(目前仅支持部分高通芯片手机)。
Network(Recv/Send,测试目标进程流量)
CTemp(CPU温度)
BatteryPower(Current电流、Voltage电压、Power功耗)(注:与仪器测试误差<3%左右)。注:Sum(Battery)是耗电量。
Web性能数据管理:
账户信息管理
性能数据管理、图表展示、编辑、大版本对比
性能数据统计、分析及多维度对比等
性能测试任务管理
软件功能介绍:
1.性能参数控制Page:
点击”+”按钮,选择需要收集性能参数,控制性能参数显示page
2.记录保存:
测试结束时,可自主选择两种方式保存处理(Upload/Save)性能数据:
1)将性能数据同步上传PerfDog云端web看板
2)本地导出Excel文件
3.记录回放(方便回看分析):
打开要回放文件
回放结果如图:
4.批注及标定(鼠标左键双击,则批注。左键双击已生成的批注,则取消。鼠标左键单击,则标定):
5.设定性能参数统计分析阈值、编辑统计参数分析及框选记录保存(对齐TDR标准):
6.场景Label标签:
通过标签按钮给性能数据打标签,鼠标左键双击颜色区域可修改对应区域标签名
7.屏幕记录:
注意:截屏记录开启,影响性能
8.多进程测试:
iOS平台,APP多进程分为APPExtension和系统XPCServer。
比如:某电竞直播软件用到APPExtension扩展进程(扩展进程名LABroadcastUpload)。当然也可能用到系统XPCServer服务进程,如一般web浏览器会用到webkit。
备注:子程序进程名高亮显示,表示当前子进程处于顶层。
9.FPS高阶功能(Android平台):
满足高级用户更精准测试窗口帧率(游戏、小游戏、小程序、直播、视频类、web等所有应用都适用)。
10.Log日志功能:
采集系统日志信息。
11.停止功能:
无需拔手机,StopProfilling即可停止采集信息。
12.自定义数据文件服务器地址,构建自己web云:
Web云平台功能介绍:
1.个人性能数据MyData。
具体性能数据展示。
2.测试任务管理
创建任务邀请测试成员加入,或加入其他人创建的测试任务中。
3.性能数据共享归纳
4.测试任务性能数据TaskData
6.Case报告多维度对比(详情、机型、版本、比例、区间、趋势、拖拉缩放等)。
比例、区间、趋势、拖拉缩放等对比(鼠标左右拖动性能曲线)
--------------------------------------------------------------------------------