影响用户对app&的流畅体验;游戏的因素有哪些?
首先,帧时间
帧时间的定义:两帧之间的间隔很耗时(也可以简单的认为单帧渲染很耗时)。
FrameTime和Caton有联系吗?请查看下面的案例图标:
从图中可以看出,在GPU上渲染图片中的B帧需要的时间(帧生成时间)比显示器的刷新间隔要多,所以刷新两次显示器需要时间。也就是说有一次画面没有刷新。当多次没有画面刷新时(即画面没有变化),可能是卡顿。
由此可以得出一个结论:玩家和用户真正看到的是刷新新屏幕的间隔,而不是eglSwapbuffers-GPU渲染完成的间隔(不提交屏幕显示)。所以后面提到的Frametime指的是屏幕显示——frame time。
PerfDog工具的优点:PerfDog统计的FPS和Frametime是用户真正刷新新屏幕显示的FPS和frame time。所以可以通过Frametime直接判断测试过程中是否出现卡顿。
第二,FPS
FPS的定义:帧率(1秒内屏幕刷新的平均次数)。
平均帧率:习惯上称为FPS,1秒内屏幕刷新的平均次数。
瞬时帧率:由单帧耗时的FrameTime计算出来的实时FPS,由每帧耗时的刷新转换而来。
画面渲染流程图如下,每帧时间。
PerfDog统计帧速率和帧时间如下:
FPS帧率和卡顿有关系吗?我们分为Andriod和ios两个场景,进一步了解:
1,iOS端
苹果WDDC18开发者大会框架进度
比如下面两个游戏画面,左边那个尝试60帧运行,实际只能达到40帧;右边的一个以30帧的速度稳定运行:
上图左边帧率高,但好像有一卡一饭的现象,是微口吃造成的。左侧的帧时间如下:
从FrameTime可以看出frametim >: =180ms,理论平均FrameTime=25ms。所以非均匀渲染,虽然帧率高达40,但还是感觉很卡。
在右侧,30帧以低帧速率运行帧时间,如下所示:
从上面的FrameTime可以看出,帧率FPS=30,FrameTime甚至是33ms,画面会非常流畅。
总结:高帧率未必流畅。
2.安卓端
测试系统版本:Android4.4流畅机制-黄油计划(邱建)
谷歌邱建计算思路:考虑视觉惯性,以硬件vsync时间间隔,连续1次vsync无新画面刷新视为卡顿,即下一个无新画面刷新的vsync时间点视为邱建。
第三,流畅度
流畅性和卡顿之间的关系可以用下面的流程图来大致说明:
流畅度影响卡顿。这可以简单理解为视觉惯性和电影帧:
1,视觉惯性
视觉预期帧率,用户潜意识认为下一帧也应该是当前帧率刷新,比如60帧,用户潜意识认为下一帧也应该是60帧。刷新永远是25帧,用户潜意识里认为下一帧也应该是25帧。但如果刷新是60帧,会跳到25帧,会扰乱用户的视觉惯性。这时候就会有用户体验感。
2.电影帧
电影帧率(18-24)一般是24帧。单个电影帧耗时:1000ms/24=40ms。电影帧率是一个临界点。在这个帧率以下,人眼基本能感觉到画面的不连续,也就是有卡顿的感觉。
第四,perf dog-邱建
想到PerfDog邱建计算:考虑到视觉惯性,假设取前三帧的平均帧时间作为参考,作为vsync的时间间隔,连续两次没有新的渲染画面刷新,则认为是潜在的卡顿,即下一帧时间是前三帧平均帧时间的两倍,则认为是潜在的卡顿。同时,如果单帧耗时是电影帧的两倍以上(1000ms/24*2),则认为是真正的卡顿。同时,如果单个帧的时间超过电影帧的三倍,则认为是严重堵塞。
注:为什么是两次vsync?GPU一般是三重缓存,当前帧已经占用了一个缓存,也就是剩下的两个缓存,人眼一般可以容忍两帧的延迟。
为什么两个电影帧很耗时?24帧以下,人眼可以感知到画面的不连续,胶片一般是24帧。即电影帧需要1000ms/24=41.67ms,两个电影帧需要41.67ms*2,三个电影帧需要41.67ms*3。
邱建计算方法:
如果两个条件同时满足,则认为是邱建。
①显示帧时间& gt前三帧平均花费两倍的时间。
②显示帧时间& gt两个电影帧需要时间(1000ms/24*2=84ms)。
如果同时满足两个条件,则认为是严重堵塞。
①显示帧时间& gt前三帧平均花费两倍的时间。
②显示帧时间& gt三个电影帧需要时间(1000ms/24*3=125ms)。
谷歌-邱建如图所示:
佩尔夫多格-邱建如图所示:
真的测试FrameTime计算邱建,如下图所示:
佩尔夫多格-邱建如图所示:
备注:帧率低不是卡。如果帧率只有几帧,卡在哪里?
目前主流游戏与邱建的对比如下:
PerfDog-web平台
从前面的内容中,我们了解了FrameTime、FPS、流畅度和邱建的密切关系后,自然可以得出我们的结论:
1,游戏
游戏流畅度是影响用户体验的最重要因素,所以我们需要重点关注FPS和邱建。
备注:比如游戏中预测到的卡顿,比如新UI弹出导致的卡顿,可以认为是干扰,需要消除,不应该算作邱建。您可以通过右键单击web cloud上的框来删除干扰数据。
2.APP。
APP也需要关注FPS和邱建。只需要区分使用场景,比如:
1)静态页面窗口
只要注意FPS,理论上FPS应该是0,否则说明有冗余刷新,容易导致手机发热耗电。
2)有滚动动画页面窗口。
注意FPS就行了,FPS在一个合适的值,不需要高频刷新。
3)快速滑动页面窗口。
需要注意FPS和邱建。这就是手机交互的敏感性的来源,安卓系统想出了黄油计划邱建。在一般滑动状态下,帧率越高越好,邱建越小越好。
4)播放视频页面窗口。
你需要注意FPS和邱建,视频卡顿直接影响用户。视频的一般帧率是18-24帧,邱建=0。比如微信播放视频,视频播放器。
通过以上内容分析,相信大家可以清楚的了解对&应用&的影响;游戏体验的性能参数,以及上线前后测试工作中需要注意的重点。PerfDog是腾讯WeTest客户端的性能测试工具,可以快速定位和分析性能问题,致力于提升APP应用质量和游戏性能。