测试画面帧率及帧延时一种方法

 

帧数高并不等于流畅度好

随着显卡性能的不断发展,当今的渲染性能已经不是困扰用户的问题了,但是帧数的提高并没有彻底解决画面的流畅度问题,这里面依然大有玄机。之前认为的画面帧数高了就流畅的看法是片面的,真正影响画面流畅度的是帧延迟,这是一个影响显示体验却又不为人知的真相。

电影工业使用24帧速度,人眼看起来并没有不流畅,而PC画面的24帧就不容易接受,因为它不是动态模糊的。

PC渲染跟电影原理不同,它是一帧一帧渲染的,前后帧的画面可能有很大差别,反映到人眼中就会觉得不够连贯。

更坏的情况下,每一帧复杂度不一,渲染所需时间也不同,这造成了帧数忽高忽低,就算最终的平均帧很高,但这也会带来画面帧数不稳的问题,用户的感受就是画面一会流畅一会卡顿,这是很差的视觉体验。

何为帧延迟?

帧延迟的高低可以通过帧时间(frame time)来判定,我们以显示器的60Hz刷新率来算,它意味着每秒刷新60次,每次大约16.7ms。画面中每帧生成时间如果与16.7ms很接近,那么全程画面的帧数就很稳定,更接近理想的60fps。

如果每帧生成时间大大高于16.7ms,这就代表着渲染中这一场景中花费的时间比其他帧更多,画面会跟不上,进而带来卡顿现象。

如何测试?

Fraps,是一款显卡辅助软件,用它可以轻松了解PC在渲染画面时的帧数,从而了解显卡的性能! 另外它还具备在播放中的截图和视频捕捉功能,可以方便的进行截图和动画捕捉。但是单纯某一帧的截图,并不能代表整个显卡的性能,要有整体的帧率和帧延时起伏变化,才能看出强弱何在。这种情况下,像各大测评网站上的那种折线图就一目了然了,而Fraps就可以轻松地做到这一点。

在Fraps的“帧率”一栏里面可以进行设置。

 

Benchmark Settings下方就是有关帧率记录的设置。Fraps的默认启动快键键为F11。下面的三个框,就是我们想要记录的数据。可以都勾选上。

打开视频

比如我们想要记录一段视频的帧率和帧颜色,此时,按下F11:

左上角的数字变成绿色,然后瞬间就消失了。不要着急,此时fraps后台已经开始记录数据了。假如我想要记录的视频就要结束了,再按F11可以停止记录。

关闭视频,打开fraps主文件夹,里面的benchmark文件夹中,就有我们已经记录下来的数据。

后台记录下来了三个csv文件,csv文件可以Excel直接打开的。这三个文件对应的就是我们刚刚勾选的三个选项:

记录最大/小及平均率、记录帧率、累计帧时间。

记录最大/小及平均率的结果:

可以看到,我们一共记录了2496帧,历经92秒多,最小帧数25,最大帧数35,平均27.1。

累计帧率的结果:

这个结果显示的是刷新每一帧的时间。

记录帧率的结果:

这个结果最直观,显示的就是每秒的帧率。我们就用这个数值制作帧率曲线。

选中所有数据,然后在插入中选择折线图:

可以看到,帧数曲线就画出来了,横轴是时间,纵轴是帧率。

图中可以看到,虽然画面的帧数不高,但是曲线很平滑,对于普通笔记本来说,并不会感到卡顿,可以运行。我的本子是Intel集显。

当我们不是要测某一场景的帧数,而是需要一段固定的时间的话,在fraps中设置“在 ( 60)秒后自动停止记录”即可。

总结:这种方法做帧率曲线,简单快捷,一目了然。图表也可以更加完善。

打开frametimes.csv 这个文件,可以看到这样的一个页面。 我在这短短的92秒的时间内大概生成了1996帧,所以一共产生了2496行数据。

但是!我们仔细看就可以发现,B列(Time列) 事实上统计的是“帧累计生成时间”,而不是我们要求的“每帧生成时间”,所以我们必须要做一些处理。

我们再C列的这个位置上写入 =B3-B2 ,可以看到字体会变色,这时候再点一下确定,数值就算出来了。

双击下第一行,这时候,我们要求的“每帧生成时间”统计列就出来了!

使用折线图做出来的【每帧生成时间图】

一般来说,30帧/秒就相当于每帧生成时间为33ms,而30帧/秒可以作为一个判断画面是否流畅的临界点的。

而我们看这个图,显然播放视频压力还是蛮大的。

 

 

zuozewei CSDN认证博客专家 性能测试 DevOps 测试开发
擅长领域:测试开发、性能测试、运维、DevOps、云计算、云原生。
【7DGroup】技术公众号作者、某头部知识 APP 专栏《性能测试实战30讲》、《高楼的性能工程实战课》编委。
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页