妖碧落

导航

pertDog 性能狗使用

移动全平台iOS/Android性能测试、分析工具平台。快速定位分析性能问题,提升APP应用及游戏性能和品质。

详细使用支持文档里面已经写得很清楚了:https://perfdog.qq.com/support

 

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(系统调试日志信息)

posted on 2020-04-26 10:49  妖碧落  阅读(1215)  评论(0编辑  收藏  举报