zoukankan      html  css  js  c++  java
  • 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(系统调试日志信息)
    竹杖芒鞋轻胜马,一蓑烟雨任平生。 回首向来萧瑟处,也无风雨也无晴。
  • 相关阅读:
    进程与线程
    the art of seo(chapter seven)
    the art of seo(chapter six)
    the art of seo(chapter five)
    the art of seo(chapter four)
    the art of seo(chapter three)
    the art of seo(chapter two)
    the art of seo(chapter one)
    Sentinel Cluster流程分析
    Sentinel Core流程分析
  • 原文地址:https://www.cnblogs.com/yaobiluo/p/12777746.html
Copyright © 2011-2022 走看看