• perfdog使用手册


    PerfDog(性能狗)测试须知

    Android平台

    ScreenShot(只支持USB模式)

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

    1)Avg(FPS):平均帖率 2)Var(FPS):帖率方差 3)Drop(FPS):降帖次数(平均每小时相邻两个FPS点下降大于8贴的次数)

    jank(1秒内卡顿次数)

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

    2)jank(10分钟):平均每10分走过来卡顿次数

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

    FTime(上下贴画面显示时间间隔,即认为贴耗时)

    1)Avg(Ftime)平均贴耗时

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

    CPU Usage(Total整机/App目标进程,统计结果和Andrid Studio Profilter一致)

    CPU Clock(各个CPU核心的帖率的频率)

    Memory (PSS Memory,统计结果和Android java API标准结果一致,也Meminfo也一致)

    Swap Memory (Swap Memory,部分设备支持Swap功能,在启用Swap功能后,系统会对PSS内存进行压缩,Swap增加,PSS会相应减少,由于压缩会占用CPU资源,同时相应会导致FPS降低)

    根据perfdog关键字

    FPS

    FPS

    1s内应用程序的刷新次数,又叫做帧率
    

    AvgFPS

    平均帧率(一段时间内的FPS)--方差越小越稳定
    

    VarFPS

    Var(FPS):帧率方差(一段时间内FPS方差)
    

    Drop(FPS)

    平均每个小时相邻两个FPS点下降大于8帧的次数
    

    Jank

    jank&Bigjank

    1秒内的卡顿次数
    
    PerfDog Jank计算方法:
    
    同时满足两条件,则认为是一次卡顿Jank.
    
        ①Display FrameTime>前三帧平均耗时2倍。
        
        ②Display FrameTime>两帧电影帧耗时 (1000ms/24*2=84ms)。
        
    
    
    同时满足两条件,则认为是一次严重卡顿BigJank.
    
        ①Display FrameTime >前三帧平均耗时2倍。
        
        ②Display FrameTime >三帧电影帧耗时(1000ms/24*3=125ms)。
    

    Jank(/10min)

    10分钟内的卡顿次数
    

    CPU

    AvgTotal(%)

    CPU的平均使用率
    

    AvgAPP(%)

    被测试应用程序的cpu使用率
    

    CPU Temperature

    CPU的温度
    

    others

    AvgAPP%

    该app手机占用
    

    PeakMemory(MB)

    app运行的时候,最高内存占用
    

    AvgSend(KB/s)

    平均上传数据速度(KB/S)
    

    AvgRecv

    平均接收数据速度()
    

    AvgPower(mW)

    平均耗电量(连接数据时检测不到,因为没有意义)
    

    AvgCTemp

    平均CPU温度
    

    FTime

    上下帧画面显示时间间隔,即认为是帧耗时
    

    AvgFTime(ms)

    平均帧耗时
    

    DetailFTime(/h)

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

    FrameTime、FPS、流畅度、Jank、影响剖析

    第一部分:FrameTime

    Frame Time:两帧画面间隔耗时(也可以简单认为是单帖渲染耗时)
    大家可以直接通过Frametime来判断测试过程中是否出现卡顿。
    

    第二部分:FPS

    FPS的定义:帖率(1s内平均画面刷新次数)
    平均帖率:传统说的FPS,1s内平均画面刷新次数
    瞬时帖率:单帧耗时FrameTime算出来实时FPS,每一帧画面刷新耗时换算出的实时帧率。
    
    
    FPS帧率与卡顿是否有关系?
    总结:帧率高,未必流畅。
    
    流畅度机制-黄油计划(Jank)
    Google Jank 计算思路:考虑视觉惯性,以硬件vsync时间间隔,连续1次vsync没有新画面刷新,
    则认为是一次卡顿, 也就是说下一次vsync时间点没有新画面刷新,则认为是一次Jank。
    
    
    
    
    

    第三部分:流畅度

    流畅度和卡顿的关系

    流畅度影响卡顿。这个可以简单的理解为视觉惯性和电影帧这两个方面:
    
    

    1 视觉惯性

    视觉预期帧率,用户潜意识里认为下帧也应该是当前帧率刷新比如一直60帧,用户潜意识里认为下帧也应该是60帧率。
    刷新一直是25帧,用户潜意识里认为下帧也应该是25帧率。但是刷新如果是60帧一下跳变为25帧,扰乱用户视觉惯性。
    这个时候就会出现用户体验的卡顿感。
    

    2 电影帧

    电影帧率(18-24),一般是24帧。电影帧单帧耗时:1000ms/24=40ms。电影帧率是一个临界点。低于这个帧率,
    人眼基本能感觉画面不连续性,也就是感觉到了卡顿。
    一电影帧是42ms
    
    
    
    

    第四部分:PerfDog-Jank

    PerfDog Jank 计算思路

    考虑视觉惯性,假设以前三帧的平均帧耗时为参考,作为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。
    

    PerfDog Jank计算方法

    同时满足两条件,则认为是一次卡顿Jank.
    ①Display FrameTime>前三帧平均耗时2倍。
    ②Display FrameTime>两帧电影帧耗时 (1000ms/24*2=84ms)。
    
    同时满足两条件,则认为是一次严重卡顿BigJank.
    ①Display FrameTime >前三帧平均耗时2倍。
    ②Display FrameTime >三帧电影帧耗时(1000ms/24*3=125ms)。
    

    备注:帧率低,并不是顿卡,如帧率都是只有几帧了,还有什么顿卡而言?

    app为什么关注Jank卡顿

    APP也需要关注FPS及Jank。只是需要区分使用场景,如:
    
    1)     静态页面窗口
    
    只需关注FPS,理论FPS应该为0,否则,说明有冗余刷新,容易引起手机发热及耗电。
    
    2)     有滚动动画页面窗口
    
    只需关注FPS,FPS处于合适值即可,无需高频刷新。
    
    3)     快速滑动页面窗口。
    
    需要关注FPS和Jank。手机交互灵敏度就是来源于此,Android系统才出黄油计划Jank。一般滑动状态下,帧率越高越好,Jank越小越好。
    
    4)     播放视频页面窗口。
    
    需要关注FPS和Jank,视频卡顿直接影响用户。视频一般帧率18-24帧,Jank=0。比如微信播放视频、视频播放器等。
  • 相关阅读:
    移动自动化测试平台技术架构与智能设备选型
    自动遍历回归测试工具
    PO模式自动化测试用例与测试框架封装改造
    Appium自动化测试之IOS WebView和Safari
    微信小程序自动化测试
    Android Native和Hybrid两种架构采用Appium进行UI自动化
    JavaScript学习 Ⅶ
    JavaScript学习 Ⅵ (正则表达式)
    JavaScript学习 Ⅴ
    JavaScript学习 Ⅳ
  • 原文地址:https://www.cnblogs.com/ouyang99-/p/12209250.html
Copyright © 2020-2023  润新知