一、名词含义
Jank 卡顿次数
SmallJank 微小卡顿次数
BigJank 严重卡顿次数
Stutter 卡顿率
二、计算方法
同时满足两条件,则认为是一次卡顿Jank.
- Display FrameTime(单帧渲染耗时)>前三帧平均耗时2倍
- Display FrameTime(单帧渲染耗时)>两帧电影帧耗时 (1000ms/24*2≈83.33ms)
同时满足两条件,则认为是一次严重卡顿BigJank.
- Display FrameTime >前三帧平均耗时2倍
- Display FrameTime >三帧电影帧耗时(1000ms/24*3=125ms)------------电影帧24帧/s(每秒放映24帧)—人眼感知
三、卡顿率
PerfDog Stutter 定义:
- 测试过程中,卡顿时长的占比。即Stutter(卡顿率)=卡顿时长/总时长
PerfDog Stutter计算思路:
- 基于PerfDog Jank的基础上,一次Jank卡顿,会有一次卡顿时间Jank time。测试过程中可能有多次Jank卡顿,即有多次卡顿时间Jank time。测试总时长为Time。
卡顿率计算:
Stutter(卡顿率) = ∑Jank time / Time
总结说明:Jank为卡顿次数,Stutter为卡顿率,Jank和Stutter趋势有一致性,但并非完全线性,因为每次Jank卡顿严重性是不一样的。同时也说明了,没有Jank卡顿出现,自然也就卡顿率是0
四、延伸FPS帧率
- 平均帧率1s平均画面刷新次数
- 瞬时帧率:单帧率渲染耗时换算实时帧率
关系如下图:
五、导致不流畅原因
帧率过低
- 电影真理(18-24),一般24帧。电影帧单帧率耗时:1000ms/24≈41.67ms.电影帧率是一个临界点。低于这个帧率,人眼基本能感觉画面不连续,即卡顿现象。
跳帧
- 视觉预期帧率,用户潜意识里认为下帧与当前帧率刷新一致,即当前刷新帧率60,下帧也应该是60帧。跳帧即60帧下降30帧之类,扰乱用户视觉惯性
六、指标+场景
指标参考:
参数 指标 备注
FPS ≥24 不应低于24帧
Jank ≤0 不应该大于0
BigJank ≤0 不应该大于0
Stutter ≤0% 不应该大于0%
场景(区分场景关注):
- 备注:比如游戏中已预知的卡顿,如新UI弹出等造成卡顿,可认为是干扰,需要剔除,不应算在Jank,可通过web云上,框选右键删除干扰数据。
1.静态页面窗口
- 只需关注FPS,理论FPS数值为0,否则,说明有冗余刷新,容易引起手机发热和耗电
2.有滚动动画页面窗口
- 只需关注FPS,FPS处于合适数值即可,无需高刷.
3.快速滑动页面窗口
- 关注FPS、Jank及Stutter。一般滑动状态下,帧率越高越好,Jank越小越好。
4.播放视频页面窗口
- 关注FPS、Jank及Stutter,视频卡顿直接影响用户,视频一般帧率18-24帧,Jank=0。
以上参考PerfDog说明书