【学习笔记】APP性能---流畅度测试关注的几个参数

1、流畅度测试关注的几个参数:

(1)FPS(平均帧率):帧率--1秒内平均画面刷新次数;

FrameTime :两帧画面间隔耗时--也可简单认为单帧渲染耗时;=1/FPS

(2)Jank:Android端流畅度机制-黄油计划(Jank);

(3)Stutter(卡顿率):测试中卡顿时长的占比,即Stutter(卡顿率)=卡顿时长/总时长;

GPU渲染B帧时,用了两个显示器刷新时间,有一次没有刷新画面,用户会感受到卡顿。用户感受到的时屏幕刷新的间隔时间。

画面渲染流程如下:

2、FPS:不是FPS越高越流畅

(1)FPS=40,其中出现一次FrameTime>117ms,当真帧率是10时,预期的FrameTime=1000/40=25ms,所以非均匀渲染会感觉到卡;--Micro Stuttering(微型口吃)。

(2)FPS=30,FrameTime均匀为33ms,画面会非常平滑。

3、Jank

Google Jank 计算思路:考虑视觉惯性,以硬件vsync时间间隔,连续1次vsync没有新画面刷新,则认为是一次卡顿,也就是说下一次vsync时间点没有新画面刷新,则认为是一次Jank。

PerfDog的jank计算思路:

考虑视觉惯性,假设以前三帧的平均帧耗时为参考,作为vsync时间间隔,连续两次vsync没有新渲染画面刷新,则认为是一次潜在卡顿,也就是说下一帧耗时大于前三帧平均帧耗时2倍,则认为一次潜在卡顿。同时单帧耗时满足大于两倍电影帧耗时1000ms/24*2 (由于人眼低于24帧才能辨别画面不连续性),则认为是一次真正卡顿。同时若单帧耗时大于3倍电影帧耗时,则认为是一次严重卡顿。

PerfDog的jank计算方法:

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

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

用户感受到的流畅度和视觉惯性及电影帧有关系:

视觉惯性:用户潜意识认为下一帧率和当前帧率一样,如果当前是60帧率,下一帧是25,扰乱用户的视觉惯性,就会感受到卡顿;

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

4、Stutter(卡顿率)

测试过程中,卡顿时长的占比。即Stutter(卡顿率)=卡顿时长/总时长;Stutter(卡顿率) = ∑Jank time / Time

说明:Jank为卡顿次数,Stutter为卡顿率,Jank和Stutter趋势有一致性,但并非完全线性,因为每次Jank卡顿严重性是不一样的。同时也说明了,没有Jank卡顿出现,自然也就卡顿率是0了。

5、APP根据使用场景关注ANK及FPS:

(1) 静态页面窗口:只需关注FPS,理论FPS应该为0,否则,说明有冗余刷新,容易引起手机发热及耗电。
(2)有滚动动画页面窗口:只需关注FPS,FPS处于合适值即可,无需高频刷新。
(3)快速滑动页面窗口:需要关注FPS和Jank。手机交互灵敏度就是来源于此,Android系统才出黄油计划Jank。一般滑动状态下,帧率越高越好,Jank越小越好。
(4)播放视频页面窗口:需要关注FPS和Jank,视频卡顿直接影响用户。视频一般帧率18-24帧,Jank=0。比如微信播放视频、视频播放器等。


 

参考:PerfDog Community

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值