其他分享
首页 > 其他分享> > PerfDog的使用教程

PerfDog的使用教程

作者:互联网

一、介绍:

移动全平台iOS/Android性能测试、分析工具平台,快速定位分析性能问题。PerfDog支持移动平台所有应用程序(游戏、APP应用、浏览器、小程序、小游戏、H5、后台系统进程等)、Android模拟器、云真机等性能测试。支持APP多进程测试(如Android多子进程及iOS扩展进程APP Extension)。

重要说明Q&Ahttps://bbs.perfdog.qq.com/detail-128.html

特殊机型指南https://bbs.perfdog.qq.com/detail-127.html

性能参考标准说明https://bbs.perfdog.qq.com/detail-145.html

WEB使用手册https://bbs.perfdog.qq.com/article-detail.html?id=49

PerfDogService(自动化及云测性能服务https://perfdog.qq.com/perfdogservice

二、优缺点:

优点:

  1. 支持移动全平台:支持Android/iOS移动平台,提供PerfDog软件Windows & Mac版本
  2. 无需ROOT/越狱:Android设备无需ROOT,  iOS设备无需越狱
  3. 测试数据准确:工具CPU性能影响<1%,保证性能数据准确真实性
  4. 测试数据完整全面: 轻松获得 FPS、Jank、FTime、CPU、GPU、Memory、Battery 、Network、CTemp等性能参数
  5. 支持应用广泛:支持所有APP应用、游戏、小程序、小游戏、H5、web
  6. 工具易用性高:无需安装,即插即用,减少繁琐的测试障碍

 

缺点:

PerfDog当前处于市场推广阶段,存在诸多Bug,测试一天下来发下的Bug就不下5个,如:

  1. 在Mac上执行时,如果Mac屏幕休眠后,手机会与该工具断开连接导致测试中断
  2. 在Mac上执行测试期间图表显示正常,但上传到云平台后cpu或内存图表无法展示,且单次测试时间越长越容易复现,已提交给他们的开发处理这个Bug
  3. 在云平台上对浏览器的分辨率适配不好,当测试时间超过10分钟后,在云平台上无法展示完整的图表,比如测试30分钟,只显示13分钟的图标数据,可通过放缩浏览器,改变mac分辨率等方式解决,但显示有问题,已提交给他们的开发处理这个Bug
  4. 统计https的流量上行与实际值偏差大
  5. 测试数据保存本地时,经常出现PerfDog卡死

 

三、性能指标:

  1. 包体大小:包体大小能被列为性能指标,是从APP性能指标及游戏运营两个维度考虑的,玩家是更希望包体小的同时性能要好,有时它们会是一个互相取舍的关系。
  2. CPU占用率:一般情况下,用主流手机玩游戏20%-40%的CPU占用率算是合理的,当然这个数值随着近年来手机硬件配置的提高,会略微下降,如果CPU占用率超过80%就非常值得我们去关注了。
  3. 图片处理器每秒刷新的帧数(FPS):可用来指示页面是否平滑的渲染。手机游戏帧率FPS,30-60都可接受,上了60对于人眼主观感受差别就不大了。对于游戏开发而言,并不是FPS越高就一定越好,FPS取决于显卡,其次是内存、CPU,然后是网络。故综合游戏其他性能指标,选择一个适合的FPS即可。
  4. 内存使用:在Android系统中,每个APP进程除了同其他进程共享(shared dirty)外,还独用私有内存(private dirty),通常我们使用PSS(=私有内存+比例分配共享内存)来衡量一个APP的内存开销。移动设备的内存资源是非常有限,为每个APP进程分配的私有内存也是有限制。一方面我们要合理的申请内存使用,以免导致频繁的GC(垃圾回收机制)影响性能和大对象申请发生内存溢出;另一方面,我们要及时释放内存,以免发生内存泄漏。
  5. 电量:相对于PC来说,移动设备的电池电量是非常有限的,保持持久的续航能力尤为重要。另外,android的很多特性都比较耗电(如屏幕,GPS,sensor传感器,唤醒机制,CPU,连网等的使用),我们必须要慎重检查APP的电量使用,以免导致用户手机耗电发热,带来不良体验。
  6. 流量:目前的网络类型包含2G\3G\4G\wifi,其中还有不同运营商的区分,我们在APP的使用中经常遇到大资源,重复请求,调用响应慢,调用失败等各种情况。在不同的网络类型之下,我们不仅要控制流量使用,还需要加快请求的响应。另外,对于需要联网的手游来说,部分游戏对不同联网方式的网络类型采用了不同的流量消耗策略,主要分为wifi环境和蜂窝网络环境。所以针对不同的游戏,我们统计流量消耗时,可能要连接不同的网络进行测试。

总结,性能指标大致如下:
FPS cpu mem GPU NETwork Battery(wifi)

 

四、测试前准备

  1.  自己的设备的其他应用全都关闭。
  2.  电量充足,一般70%以上。(其实测试50%以上就行了,但是在测试过程中会耗电)
  3.  不能边充电边进行性能测试。
  4.  保持登录应用的账号不要被其他人挤掉,不然可能测试的性能数据作废了。
  5.  设备。至少要准备三台测试机,覆盖目前的高、中、低配手机(主要看cpu),如果是ios需要更多的机型。

 

五、安装及运行 

登录PerfDog官网https://perfdog.qq.com/,根据您的PC平台选择想要下载的桌面应用程序

Windows平台:解压下载包,双击打开PerfDog.exe桌面应用程序。

Mac平台:直接运行dmg桌面应用程序。

 

 

 账号的注册登录:

需要先注册账号,然后登录该账号后测试的数据就会同步到平台上;

  

打开PerfDog.exe文件,需要登录才能进入到 perfDog的主页, 输入刚刚官网注册邮箱即可

 

连接手机:

iOS:则即插即用,用户无需做任何操作。若PerfDog检测不到连接手机或无法测试,请先安装确保最新itunes是否能连上手机(最新itunes可在QQ管家上直接下载安装)。

备注:若无法使用请参考:https://bbs.perfdog.qq.com/detail-128.html

Android:有两种模式,非安装模式和安装模式。(注:请开启手机USB调试模式及允许USB应用安装。)。

a.   非安装模式:

手机即插即用,无需任何设置及安装,使用非常简单,但手机屏幕上没有实时性能数据显示。

b.   安装模式:

需要在手机上自动安装PerfDog.apk,手机屏幕上有实时性能数据显示(允许USB应用安装和PerfDog悬浮窗管理权限),启动PC版PerfDog.exe,则会在手机上自动PUSH安装PerfDog.apk,具体安装类似各个手机厂商安装第三方APP提示安装即可。(注:由于很多手机安装需要账号密码,导致无法自动安装,如果自动安装失败,则会把安装文件PerfDog.apk释放到当前文件夹里,手动安装PerfDog.apk即可)。此模式下,在测试过程中,可能由于系统资源紧缺会kill PerfDog显示app(手机界面性能数据显示),但不影响正常测试功能。

备注:若无法使用请参考:https://bbs.perfdog.qq.com/detail-128.html

测试模式:

USB模式测试:

  USB连线后,在设备列表选择USB图标设备进行USB模式测试

WIFI模式测试(测试功率):

  只能在WIFI模式测试功率等信息。USB连线后,在设备列表选择WIFI图标设备进行WIFI模式测试。WIFI检测连接成功后,拔掉USB连接线。(注:需要PC和被测手机连接同一WIFI,WIFI检测连接成功后,拔掉被测手机USB线(USB模式测试功率无任何意义,会充电))(备注:一般公司WIFI可能做了安全策略限制,导致iOS平台在公司WIFI下无法使用)

 

 首页模块介绍:

 

 

模块1:选择调试的手机设备

模块2:选项需要测试的应用名称,会显示手机上安装的所有应用

模块3:手机的CPU、GPU、内存介绍等

  1. device:显示的是设备相关信息;
  2. Setting:显示的是性能指标数据的配置页面, 参数有:FPS(帧数)、FrameTime(帧时间)、CPU、NetworkFlow(网络流量) 一般我们保持默认(可以根据自己产品的特点调整)
  3. About:显示的是版本号和帮助文档入口

模块4:

FPS:

FPS(Frames per second) 1秒内游戏画面或者应用界面真实平均刷新次数,俗称帧率/FPS。

名称说明Avg(FPS)平均帧率(一段时间内平均FPS)Var(FPS)帧率方差(一段时间内FPS方差)Drop(FPS)降帧次数(平均每小时相邻两个FPS点下降大于8帧的次数)

在平时玩游戏的时候, 延迟不能大于100毫秒, 否则用户的严重只剩下了卡顿, 100-300毫秒用户可以感受到延迟, 当达到一秒, 用户的注意力就会转移

Jank:

1秒内卡顿次数, 帧率FPS高并不能反映流畅或不卡顿。比如:FPS为50帧,前200ms渲染一帧,后800ms渲染49帧,虽然帧率50,但依然觉得非常卡顿。同时帧率FPS低,并不代表卡顿,比如无卡顿时均匀FPS为15帧。所以平均帧率FPS与卡顿无任何直接关系)

Jank1s内卡顿次数(同时满足ab,则认为一次卡顿Jank)

a) 当前帧耗时>前三帧平均耗时2倍。
b) 当前帧耗时>两帧电影帧耗时(1000ms/24*2=84ms)。

BigJank1s内严重卡顿次数(同时满足ab,则认为是一次严重卡顿BigJank)

a) 当前帧耗时>前三帧平均耗时2倍。
b) 当前帧耗时>三帧电影帧耗时(1000ms/24*3=125ms)。

BigJank:1秒内严重滞后的次数

Jank(/10min):平均每10分钟卡顿次数

BigJank(/10min):平均每10分钟严重卡顿次数PerfDog Stutter测试过程中,卡顿时长的占比。Stutter(卡顿率)=卡顿市场/总时长

 

FTime:

名称说明FTime上下帧画面显示时间间隔,即认为帧耗时Avg(FTime)平均帧耗时Delta(FTime)增量耗时(平均每小时两帧之间时间差>100ms的次数)

模块5:

CPU Usage:CPU利用率官方讲解

名称说明Total CPU整机CPU使用率AppCPU进程CPU使用率CPU Clock各个CPU核心的未规划频率和未规划使用率CPU Clock Normalized各个CPU核心的规划频率和规划使用率

模块六:

名称说明MemoryPSS Memory
统计结果和Android Java API标准结果一致,与Meminfo也一致。注:部分三星机器系统修改了Meminfo底层统计方式,导致Meminfo与Java AP统计结果不一致,新出三星机器已修复)Swap Memory部分设备支持Swap功能,在启用Swap功能后,系统会对PSS内存进行压缩,Swap增加,PSS会相应减少,由于压缩会占用CPU资源,同时相应会导致FPS降低Virtual Memory(VSS)VSS 虚拟耗用内存(包含共享库占用的内存)Memory DetailNativePSS、GFX、GL、UnknownCTempCPU温度
Battery Power(Current电流、Voltage电压、Power功耗)
注:与仪器测试误差<3%左右。
注:Sum(Battery)是耗电量。

模块7:

选择需要收集性能参数,默认已经选中了一些常用的

 

 

iOS平台(苹果官方Xcode工具参数对齐。注:iOS系统对进程性能参数做严格限制,超过限制则会被系统kill)

  1. Avg(FPS):平均帧率(一段时间内平均FPS)
  2. Var(FPS):帧率方差(一段时间内FPS方差)
  3. Drop(FPS):降帧次数(平均每小时相邻两个FPS点下降大于8帧的次数)

  参考:https://bbs.perfdog.qq.com/article-detail.html?id=6

  PerfDog Jank计算方法:

  1.同时满足以下两条件,则认为是一次卡顿Jank.

    a)当前帧耗时>前三帧平均耗时2倍。

    b)当前帧耗时>两帧电影帧耗时(1000ms/24*2=84ms)。

  2.同时满足两条件,则认为是一次严重卡顿BigJank.

    a)当前帧耗时>前三帧平均耗时2倍。

    b)当前帧耗时>三帧电影帧耗时(1000ms/24*3=125ms)。

    1)BigJank:1s内严重卡顿次数

    2)Jank(/10min):平均每10分钟卡顿次数。

    3)BigJank(/10min):平均每10分钟严重卡顿次数

    1)Avg(FTime):平均帧耗时

    2)Delta(FTime):增量耗时(平均每小时两帧之间时间差>100ms的次数)

  1. Render:渲染器利用率(像素着色处理阶段,若占比高,说明是PS阶段出现瓶颈,shader过于复杂或纹理大小、采样复杂等)
  2. Tiler: Tiler利用率(顶点着色处理阶段,若占比高,说明是VS阶段出现瓶颈,顶点数太多等原因)
  3. Device:设备利用率(整体GPU利用率)

注:Sum(Battery)是耗电量。

  参考:https://help.apple.com/xcode/mac/11.0/index.html?localePath=en.lproj#/devf7f7c5fcd

Android平台

  1. Avg(FPS):平均帧率(一段时间内平均FPS)
  2. Var(FPS):帧率方差(一段时间内FPS方差)
  3. Drop(FPS):降帧次数(平均每小时相邻两个FPS点下降大于8帧的次数)

  备注:高阶FPS功能-Android窗口与FPS

   请参考https://bbs.perfdog.qq.com/?m=app&c=detail&a=index&id=201

  1. BigJank:1s内严重卡顿次数
  2. Jank(/10分钟):平均每10分钟卡顿次数。
  3.  BigJank(/10分钟):平均每10分钟严重卡顿次数
  1. Avg(FTime):平均帧耗时
  2. Delta(FTime):增量耗时(平均每小时两帧之间时间差>100ms的次数)

  注:在极限测试情况下,例如开启游戏超高帧率,建议不要勾选收集Memory Usage和Memory Detail,因为部分机型会有性能损耗。

  1. Non-fragment:非片段着色器(顶点着色器,细分着色器,计算着色器)耗费的GPU时间占渲染耗费的GPU时间的比例。
  2.  Fragment:片段着色器耗费的GPU时间占渲染耗费的GPU时间的比例。
  1. L2Load/Store:Load/Store单元读取L2内存的实际带宽 (包括顶点缓存,原子,图像数据)。
  2. L2Texture:Texture单元读取L2内存的实际带宽 (纹理采样)。
  3. Bus Read:定义GPU到DRAM或者GPU外部的系统内存的实际读带宽。
  4. Bus Write:定义GPU到DRAM或者GPU外部的系统内存的实际写带宽。
  1. OverDraw:表示每个像素由多少个片段分层组成,通常用于表示像素被重复绘制的次数。
  2. PixelsThroughput:表示每个被渲染的像素耗费的GPU的时钟的数量。

  注:更多GPU信息说明,请参考:https://bbs.perfdog.qq.com/article-detail.html?id=72

 六、测试步骤

1.打开该软件并使用数据线连接手机,选择要测试的手机设备

 

 2.点击右下角“+”,在PerfDog上勾选好性能测试需要的参数

 

 3.在PerfDog上选好需要进行测试的APP,并在手机上打开该APP

 

 4.(待程序趋于稳定状态开始录制,一般等待2分钟)在PerfDog上点击开始进行性能录制

 

 5.结束测试

可以在保存excel文件的路径里看到测试的数据

也可以在云端看到自己测试的数据(性能数据同步上传到了PerfDog云端web看板)进入云端:点击右上角“云”icon,登录TAPD,进入云端。

 

 

标签:教程,FPS,PerfDog,内存,测试,使用,GPU,CPU
来源: https://www.cnblogs.com/Testing1105/p/15088843.html