相同的平均FPS可能掩盖不同的帧间隔排列

更新日期

平均值相同,并不要求帧间隔序列相同。汇总值可能掩盖偶尔出现的长间隔,即使是百分位数,也可能看不出这些间隔出现在哪里。以下案例都是刻意构造的序列,解释的是汇总指标的局限,而非某款游戏或电脑的实际流畅程度。

对整个序列计算平均值

先取1000个各为10毫秒的间隔。总时间为10000毫秒,因此整个序列的速率为100 FPS:用间隔数量乘以1000,再除以总毫秒数。平均间隔为10毫秒。这些定义将数量与经过的时间对应起来,而不是对各间隔的倒数速率求算术平均。

再构造另一个序列,其中990个间隔为9毫秒,10个间隔为109毫秒。总时间同样为10000毫秒,整个序列的平均速率也为100 FPS。大多数间隔更短,但少数间隔长得多。这里的相同平均值只说明整体单位时间内的数量相同,不说明分布相同。

为什么百分位数不能说明全部情况

对于1000个样本,最近秩法P99选择升序排列中的第990个值。恒定序列得到10毫秒。混合序列的该位置仍在990个短间隔之中,因此得到9毫秒,而最大值为109毫秒。在这个构造案例中,更低的P99与更长的极端间隔可以同时存在。

这不能证明混合序列的体感更好,而是反驳仅凭P99就能完整判断流畅程度的例子。应同时查看定义、样本数与最大值。除非某种低FPS指标的文档计算方法确实一致,否则不要将这个百分位数换成该指标的名称。

比较间隔数量占比与时间占比

选择对应60 FPS、约16.67毫秒的分类预算。混合序列中10个长间隔超过该预算。它们占间隔数量的1%,但完整持续时间合计1090毫秒,占序列时间的10.9%。数量占比与时间占比回答不同的问题。

这个时间占比计算的是超预算间隔的完整持续时间,而非仅计算高于预算的部分。它也不是对主观卡顿严重程度的实测评分。改变所选预算会改变同一序列的分类,并不会让序列本身更快,也不能说明所有玩家共同适用的阈值。

考虑连续聚集时保留顺序

在一个版本中将长间隔分散,在另一个版本中将它们集中到末尾。两个版本的数值、平均值、最近秩法P99与最大值都相同,但顺序不同。按所选预算,分散版本中最长的连续超预算段为1个间隔,集中版本为10个。

排序后的分布无法展示这种发生时间上的差异。比较真实记录时,应查看原始顺序并记录任务背景。场景切换附近聚集的长间隔与移动中零散出现的长间隔,是需要分别调查的观察结果;但图表本身不能识别原因,也不能预测每位玩家的体验。

为一个明确问题设计比较

实际比较时,在做出改变前先定义游戏任务、采集方法、测量的间隔类型、设置及相关环境。比较相似任务,并尽可能保持无关条件稳定。短菜单记录与较长的高负载场景记录,不会因为都能产生平均FPS而成为可互换的对象。

重复任务时,应保留所有计划用于比较的记录,而非只挑最漂亮的一次。说明时长和场景切换的差异。不要简单平均不同长度记录的速率,仿佛每个记录代表相同的经过时间。计算合并后的整体速率时,将数量与经过时间对应起来,并保留原始记录供理解背景。

先报告观察,再考虑硬件诊断

说明条件匹配的比较中什么发生了变化:平均值、分布、极端间隔或它们的顺序。设置变化后的尖峰可以提出调查问题,但不会自动识别硬件瓶颈或驱动故障。将显示的数值视为原因之前,先确认测量定义和任务背景。

玩家报告体感差异时,应将其记录为额外观察,而不是从汇总值机械推导。输入、显示以及游戏任务的影响可能超出给定间隔。实用结果是范围清楚的比较与下一步调查,而不是承诺一个统计量能够诊断所有不均匀的游戏表现。

平均FPS描述经过时间内的数量;百分位数、最大值、时间占比与原始顺序描述序列的其他方面。结合一致的定义与匹配的任务一起阅读。相同平均值可能隐藏重要差异,但仅凭这些差异无法确定原因或普遍适用的流畅度评分。