WOOFY · 游玩实验室

FPS 相同,帧节奏不同

FPS 计数器概括的是速率,并不告诉你每一帧何时到来。通过这些刻意简化的序列,了解哪些问题可以用汇总数据回答,哪些需要查看时间线。

用同一组数据回答不同的问题

为什么两个 FPS 数值不能总是直接取平均

设想两个完整间隔:10 ms 和 30 ms。它们合计占用 40 ms。应在这段总时间内计算这两个间隔。

整体速率为 1000 × 2 ÷ 40 = 50 FPS。10 ms 间隔的倒数换算成速率为 100 FPS,30 ms 间隔则约为 33.33 FPS。

将 100 和 33.33 取平均,得到约 66.67,但这不是整体速率。较慢的间隔占用了三倍的时间。请把间隔数与总时长一起考虑;合并不同时长的记录时也会遇到同样的陷阱。

三组序列,总时长相同

每组序列包含 1000 个完整帧间隔,总时长为 10000 ms。间隔指相邻两次帧事件之间的时间。这里,平均 FPS = 1000 × 间隔数量 ÷ 总毫秒数。这些是合成间隔,不涉及采集边界或缺失记录。

横向位置表示间隔的先后顺序,并非已经过的时间。纵向高度表示时长,范围为 0 至 120 ms。下方文字与数字描述的是同一组数据。

间隔均匀

每个间隔都是 10 ms,均未超过 60 FPS 对应的参考时间预算,约 16.67 ms。

平均 FPS
100
P99 间隔(ms)
10
最长间隔(ms)
10
超过预算的间隔数
0
超过预算的间隔占比(%)
0
这些间隔占总时长的比例(%)
0
超过预算的最长连续组
0
参考时间预算(ms)
16.67

十段分散的长间隔

每一百个间隔中的最后一个长 109 ms,其余 990 个都是 9 ms。长间隔彼此分开。平均值仍为 100 FPS,但 P99 只有 9 ms。

平均 FPS
100
P99 间隔(ms)
9
最长间隔(ms)
109
超过预算的间隔数
10
超过预算的间隔占比(%)
1
这些间隔占总时长的比例(%)
10.9
超过预算的最长连续组
1
参考时间预算(ms)
16.67

十段连续的长间隔

同样的十个 109 ms 间隔现在连续出现在末尾。汇总数值与长间隔分散时相同,但超过参考时间预算的最长连续组从一个间隔增长为十个。

平均 FPS
100
P99 间隔(ms)
9
最长间隔(ms)
109
超过预算的间隔数
10
超过预算的间隔占比(%)
1
这些间隔占总时长的比例(%)
10.9
超过预算的最长连续组
10
参考时间预算(ms)
16.67

为什么 P99 可能遗漏最长的间隔

本实验室将间隔从短到长排序,然后取从一开始计数的第 ceil(0.99 × N) 项。对于 1000 个间隔,该位置是第 990 项。在两组不均匀序列中,前 990 个值都是 9 ms,全部十个 109 ms 长间隔都位于该位置之后。因此,这里的 P99 更低,并不能证明体验更稳定。其他工具可能采用不同的百分位数计算方法。

P99 并不是通用的“1% low FPS”定义

百分位边界与最慢间隔的平均值是两种不同的计算。“1% low”这一名称不足以确定公式。对比结果前,请核对工具的定义、采集指标和版本。本实验室以毫秒报告 P99,不将其倒数称为 1% low。

用同一组数据回答不同的问题

选择一组序列和一个参考帧率。时间预算为 1000 ÷ 参考 FPS:30 对应 33.33 ms,60 对应 16.67 ms,120 对应 8.33 ms。更改参考值只会重新分类间隔,不会改变序列,也不会模拟 FPS 限制器。

上方三个示例均以 60 FPS 为参考。即使不使用交互控件,也可以阅读其数据、解释和计算方法。

仅统计严格长于参考时间预算的间隔。等于预算的间隔仍在预算内。

时间占比累加每个被计入间隔的完整时长,而不是只累加超出预算的部分。它不是卡顿评分,也不是输入延迟测量。连续组描述相邻的间隔,并不能证明发生了可感知的卡顿事件。

让设置改动成为公平的对比

请使用你的采集工具进行实际测量。本实验室不会读取硬件信息,也不会导入采集文件。在认定某项设置有帮助之前,请记录以下内容。

  1. 明确一个问题

    例如:改变一项图形设置,能否减少同一路线上反复出现的长间隔?保持游戏版本、场景、分辨率、帧率上限、同步方式及其他设置不变。记录所有例外。

  2. 采集可比较的运行记录

    每次采用一致的预热流程,并使用相同路线和记录时长。重复测试每种条件,在可行时交替测试顺序。将首次运行时的加载或着色器处理与预热后的测试分开;不要在未记录原因的情况下删除不利于结论的尖峰。

  3. 结合时间线阅读汇总数据

    对比平均速率、分布尾部数值、最长间隔,以及长间隔出现的位置。如果重复运行的结果大量重叠,应将结论标为不明确,而不是挑选最好的一次。平均值不变,也可能伴随有用的节奏改善。

  4. 说明结论的适用范围

    写明更改的设置、固定条件、重复运行结果和剩余不确定性。应用提交帧的时间间隔、实际显示的帧和生成的帧可能不同。请比较同一种指标,不要仅凭这些数字推断输入延迟或 CPU/GPU 故障。

从结果表得出有依据的结论

每个案例回答不同的问题:优势是否重复出现、所选指标是否改善、记录是否正确合并?先阅读观察结果,再判断它们能支持什么结论。

以下记录都是由完整间隔构造的教学数据,并非真实的性能测试采集记录。A 和 B 只是标签,不代表推荐设置。这些示例不规定最低重复次数,也不提供统计显著性判定规则。

最佳单次记录似乎有赢家,完整记录却不支持这一结论

在这个构造的案例中,A 和 B 在同一路线上交替进行,每次 60 秒,采集指标、预热、分辨率及其他条件均相同。问题是:B 在这三组对比中是否表现出可重复的平均速率优势。

重复对比组A · 平均 FPSB · 平均 FPSB 减 A(FPS)
11001033
210299-3
31011010

A

完整时长内的整体 FPS
101
各记录平均 FPS 中的最低值
100
各记录平均 FPS 中的最高值
102

B

完整时长内的整体 FPS
101
各记录平均 FPS 中的最低值
99
各记录平均 FPS 中的最高值
103

只选最高结果,会得到 A 为 102、B 为 103 FPS。保留所有等时长记录,两者的整体速率均为 101 FPS。各组差值为 +3、−3 和 0 FPS:方向发生了变化。

可以得出的结论

这组数据未显示 B 具有稳定的平均 FPS 优势,也不能证明两个设置等效;少量构造样本不足以确定这一结论。

接下来应检查什么

重复可比较的观察,并结合采集条件分析差异。保留所有有效记录,说明排除记录的理由。如果重复顺序或后台任务可能解释某个结果,应先改进对比,再选择赢家。

结论的适用边界

取值范围重叠是一种描述,不是显著性检验。最佳单次记录和固定重复次数都不是通用的决策规则。

平均值改善,长间隔指标却变差

两份构造记录均持续十秒。A 包含 980 个 10 ms 间隔及十个 20 ms 间隔。B 包含 1180 个 8 ms 间隔及二十个 28 ms 间隔。两者都采用相同的 60 FPS 参考值,即约 16.67 ms。

A

时长(s)
10
完整间隔数
990
平均 FPS
99
长于 60 FPS 参考间隔的间隔
10
这些间隔所占时间比例(%)
2

B

时长(s)
10
完整间隔数
1,200
平均 FPS
120
长于 60 FPS 参考间隔的间隔
20
这些间隔所占时间比例(%)
5.6

A 合计 990 个间隔,B 为 1200 个,对应 99 与 120 FPS。被计入的长间隔在 A 中占用 200 ms,在 B 中占用 560 ms,即总时间的 2% 与 5.6%。这些百分比描述的是时间,而不是间隔数量占比。

可以得出的结论

本例中 B 的平均速率较高,但有更多时间落在长于所选参考值的间隔里。这些数字说明指标之间存在取舍,不能确定谁的整体流畅度更好。

接下来应检查什么

明确你的实际问题是平均速率、反复出现的长间隔,还是其他测量结果。在保留某个设置前,比较同一场景的重复记录,并检查长间隔出现在什么位置。

结论的适用边界

一组 A/B 记录不能确定可重复的效果。阈值只是选定的参考值;本例既不测量感受,也不测量输入延迟,更不能确定长间隔的成因。

记录时长不同,可能让简单排名反转

A 合并十秒的 120 FPS 记录与九十秒的 60 FPS 记录。B 合并两份各五十秒、80 FPS 的记录。因此,每个标签都覆盖 100 秒。A 的记录时长不同,B 的则相同。

记录时长(s)完整间隔数平均 FPS
A1101,200120
B1504,00080
A2905,40060
B2504,00080

A

完整时长内的整体 FPS
66
各记录 FPS 的算术平均值
90

B

完整时长内的整体 FPS
80
各记录 FPS 的算术平均值
80

A 包含 1200 + 5400 = 6600 个间隔,即 100 秒内 66 FPS。B 包含 4000 + 4000 = 8000 个间隔,即 80 FPS。对 A 显示的两个 FPS 数值取平均会得到 90;若把它当作整体速率,就会错误地将 A 排在 B 前面。

可以得出的结论

按完整时长计算,这些构造数据给出 A 为 66、B 为 80 FPS。得出 90 FPS 的简化方法,给时长相差很大的记录分配了相同权重。

接下来应检查什么

如果问题是整体速率,应合并间隔数和时长。比较设置效果时,还应匹配场景构成、预热过程和采集指标;正确的算术无法弥补不一致的条件。

结论的适用边界

逐份记录的 FPS 平均值回答的是另一个问题,本身并非无效。但不能把它改称为整体速率。单凭这些汇总值,不能说明改善是由 B 导致的。

改变汇总方式,保留原始记录

用相同的构造数据,比较完整时长计算与各案例中的简化方法。改变的只有汇总方式,记录及其条件保持不变。

有用的结论也可以保留不确定性

这些数据支持“两组示例的平均值都是 100 FPS,但间隔分布模式不同”,却不支持“这台电脑玩起来一定流畅”。测试你自己的设置时,应先检查重复且可比较的测量结果,以及你想改善的体验,再决定是否保留设置。

这个练习无法告诉你什么

这些序列演示的是算术,而非人的感知。它们不涵盖显示器刷新行为、可变刷新率、帧生成、输入延迟、网络延迟或长间隔的成因。参考时间预算是一条人为选定的对比线,并非通用的好坏分界。这些示例不构成对任何游戏、硬件购买或维修的建议。