为什么120 FPS仍然感觉糟糕:帧时间、1%低帧与卡顿解析

一款游戏可能报告 120、144 甚至 200 FPS,但玩起来仍然感觉卡顿。原因很简单:平均帧率告诉你一段时间内产生了多少帧,但并不能说明这些帧是否均匀到达。即使平均 FPS 数字看起来非常出色,少数长帧也可能造成可见的卡顿或微卡顿。
FPS 是平均值;帧时间是节奏
FPS 告诉你每秒完成了多少帧。帧时间告诉你单帧需要多长时间。
粗略换算很简单:以毫秒为单位的帧时间约等于 1000 除以 FPS。在 60 FPS 时,帧预算约为 16.7 毫秒。在 120 FPS 时约为 8.3 毫秒。在 144 FPS 时约为 6.9 毫秒。
但只有当帧交付相当一致时,这些数字才有意义。7 毫秒、7 毫秒、7 毫秒、35 毫秒、7 毫秒、7 毫秒的序列仍然可以平均出高 FPS,同时产生明显的卡顿。
流畅度三角
三个不同的因素决定游戏感觉有多快
一个系统可能在一个角上很强,而在另一个角上很弱。高 FPS 但帧时间不稳定可能感觉卡顿。稳定渲染但延迟很高可能感觉流畅但迟钝。好的性能调优必须确定哪个角实际上出了问题。
为什么平均 FPS 会掩盖卡顿
两个会话可以有相同的平均 FPS,但感觉不同
| 稳定会话 | 不稳定会话 | |
|---|---|---|
| 平均 FPS | 120 FPS | 120 FPS |
| 大多数帧时间 | Around 8–9 ms | Mostly 5–7 ms |
| 慢帧 | Few meaningful spikes | Repeated 25–50 ms spikes |
| 玩家体验 | Consistent motion | Hitches despite the high average |
不稳定的会话可以通过在尖峰之间渲染许多非常快的帧来补偿长帧。平均值保持很高,但玩家注意到的是尖峰,而不是算术平均值。
1% 低帧试图展示什么
低 FPS 和百分位指标之所以存在,是因为仅靠平均 FPS 无法描述帧分布中的慢端。
NVIDIA FrameView 报告平均 FPS 以及 1% Low 和 0.1% Low 指标。其文档将 1% Low 描述为最慢 1% 帧的平均值,并指出低 FPS 值越接近平均值,体验往往越一致。
NVIDIA 还提供了基于百分位的指标,例如将最慢 1% 帧与更快的 99% 帧分开的帧率。这些是相关概念,但并非每个基准测试工具都以完全相同的方式实现或标记低 FPS 统计数据。
帧时间图通常比单一汇总数值更有用
帧时间图显示整个捕获过程中各帧的时序。平坦或狭窄的带状区域通常表示帧交付稳定。孤立的高尖峰揭示卡顿。重复出现的波形可能指向周期性的后台工作、流式加载、同步或其他重复性负载。
Intel PresentMon 正是围绕这类分析设计的。Intel 当前的工具可以显示实时性能图表、百分位数、移动窗口平均值和 GPU 遥测数据,并支持 DirectX、OpenGL 和 Vulkan 应用程序。
NVIDIA FrameView 同样测量帧率和帧时间,并可将详细的捕获数据写入日志以供后续分析。
帧时间稳定性测试
诊断高 FPS 是否掩盖了卡顿
CPU 瓶颈和 GPU 瓶颈看起来并不相同
低帧率并不能告诉你哪个处理器应对延迟负责。CPU 准备游戏和渲染工作;GPU 执行图形工作。任何一方都可能成为节奏限制。
Intel PresentMon 的 GPU Busy 指标专门用于帮助评估 GPU 执行时间与总帧时间之间的关系。这有助于区分 GPU 在大部分时间间隔内处于忙碌状态的帧,与大部分延迟发生在其他地方的帧。
简化的时序模式
| 典型时序模式 | 可能暗示的问题 | |
|---|---|---|
| GPU 受限 | GPU busy time is close to the frame interval | The graphics workload is consuming most of the available frame budget |
| CPU / 管线受限 | Frame time grows while GPU busy time remains materially lower | The delay may be before GPU execution or elsewhere in the presentation pipeline |
| 间歇性事件 | Mostly stable timing with isolated large spikes | Streaming, shader compilation, background work, asset loading or another transient event may be involved |
为什么帧率上限有时比最高 FPS 感觉更流畅
以尽可能高的无上限 FPS 运行游戏可能会使系统某一部分接近饱和。在某些负载中,留出余量可以减少时序波动并产生更稳定的节奏。
这并不意味着每个游戏都应限制到相同的数值。有用的测试是经验性的:在无上限和一个或多个合理上限下捕获相同负载,然后比较帧时间稳定性和延迟。
较低的平均值但帧交付明显更紧凑,可能比较高的平均值但频繁出现尖峰感觉更好。
高 FPS 卡顿的常见原因
| 原因类别 | 你可能看到的现象 | 需要测试的内容 |
|---|---|---|
| 着色器或管线编译 | 与首次出现的特效、地点或动作相关的尖峰 | 重复相同序列并比较后续运行 |
| 资源 / 世界流式加载 | 进入区域或加载新内容时出现尖峰 | 存储、纹理设置、世界流式加载行为 |
| CPU 调度 / 后台工作 | 与 GPU 负载无关的不规则尖峰 | 后台进程、覆盖层、录制、CPU 饱和 |
| GPU 饱和 | GPU 执行时间持续偏高 | 降低高开销图形设置或测试帧率上限 |
| 内存压力 | 在大量 VRAM/RAM 使用下卡顿加剧 | 纹理级别、分辨率、后台应用程序、工作集行为 |
| 呈现 / 同步 | 刷新率或呈现模式相关的节奏问题 | V-Sync、VRR、帧率上限和显示模式的组合 |
| 驱动或游戏回归 | 问题在特定更新后出现 | 在可行时比较版本或官方已知问题说明 |
着色器编译是一种特殊情况
有些卡顿并不是简单的稳态性能问题。一个工作负载可以以高帧率流畅运行,直到游戏执行只在特定时刻发生的昂贵工作。
着色器或管线编译就是一个例子。如果卡顿在首次遇到特定效果或区域时出现,但在后续经过时变小或消失,这种模式与持续过慢的 GPU 不同。
这就是为什么可重复的捕获很重要。整个会话的一个平均值可能将稳定渲染和一次性事件混合在一起,得到一个两者都无法解释的结果。
VRR 无法修复糟糕的帧时间
可变刷新率可以在其工作范围内使显示刷新时序与可变的帧交付更紧密地对齐,并减少可见的撕裂或抖动。
但 VRR 不会让 40 毫秒的帧变成 8 毫秒的帧。大的渲染或 CPU 停顿仍然是大的停顿。显示技术可以改善呈现;它无法消除最初延迟该帧的工作。
为什么 0.1% 低帧可能变得嘈杂
关注极小部分帧的指标有助于暴露严重的异常值,但它们也会对捕获时长和一次性事件变得敏感。
包含一次加载过渡的短捕获可能产生与更长、可重复的游戏运行截然不同的极低帧结果。这并不意味着该指标无用;而是意味着测试方法很重要。
一个实用的基准测试协议
测量游戏而不自欺欺人
帧时间稳定性评分卡
在称一款游戏“流畅”之前要看什么
| 健康信号 | 警告信号 | |
|---|---|---|
| 平均吞吐量 | Meets your performance target | Average hides repeated drops below the useful range |
| 慢帧尾部 | Reasonably close to average for the workload | Large persistent gap between average and low-FPS metrics |
| 帧时间轨迹 | Narrow, mostly stable band | Frequent tall spikes or recurring oscillation |
| 可重复性 | Similar pattern across comparable runs | Result changes wildly between identical tests |
| 时序诊断 | CPU/GPU behavior matches the suspected constraint | Optimization is being applied without identifying the bottleneck |
什么会改变这个答案?
可用的确切指标取决于操作系统、图形 API、硬件和测量工具。未来的呈现系统或帧生成管线也可能需要在渲染帧、生成帧和显示帧之间做出额外区分。
核心原则不太可能改变:吞吐量平均值无法完全描述时序一致性。只要交互式图形以帧序列的形式交付,这些帧的分布和时序就很重要。
局限性
本文是一个诊断框架,并非声称所有卡顿都有相同的根本原因。游戏引擎、API、操作系统、驱动程序和渲染管线各不相同。
低帧率指标也应在生成它们的工具的方法论范围内进行解读。当统计定义或采集管线不同时,跨工具比较可能会产生误导。
结论
如果一款游戏显示高帧率但仍然感觉不佳,不要再盯着平均值看了。
测量帧时间。检查慢帧尾部。找出尖峰发生的时间。比较 CPU 和 GPU 的时序。然后改变一个变量并重复相同的工作负载。流畅度不仅仅在于你的系统能产生多少帧,而在于这些帧能以多稳定的节奏送达你。
常见问题
帧率、帧时间与卡顿
为什么 120 帧仍然感觉卡顿?
什么是帧时间?
1% 低帧率是什么意思?
1% 低帧率比平均帧率更重要吗?
VRR 能修复微卡顿吗?
我应该限制帧率以减少卡顿吗?
术语表
关键性能术语
- 帧时间
- 与生成或呈现单个帧相关的时间,通常以毫秒表示。
- 平均帧率
- 描述在测量间隔内产生的帧数的吞吐量平均值。
- 1% 低帧率
- 一种慢帧性能指标。具体计算方式可能因工具而异;NVIDIA FrameView 将其 1% 低帧率描述为最慢 1% 帧的平均值。
- 帧时间尖峰
- 持续时间明显长于周围帧的帧,通常被感知为顿挫或卡顿。
- GPU Busy
- 一种 PresentMon 时序指标,用于将 GPU 执行时间与更广泛的帧间隔进行比较,并帮助诊断 CPU/GPU 平衡。
- 帧时间稳定性测试
- 一种 Figure Rocks 工作流程,用于在可重复条件下评估平均吞吐量、帧时间分布、慢帧指标以及 CPU/GPU 时序。
主要来源
Intel — PresentMon英特尔官方性能监控工具,具有实时图表、百分位数、GPU 遥测、GPU Busy 以及对主要图形 API 的支持。
NVIDIA — FrameViewNVIDIA 官方工具,用于测量帧率、帧时间、功耗和每瓦性能,使用基于 PresentMon 的分析。
NVIDIA — FrameView 用户指南官方文档,定义了平均帧率、百分位数指标、1% 低帧率和 0.1% 低帧率,并解释了稳定性与卡顿的关系。
Intel — 图形 API 开发者与优化指南英特尔官方指南,涵盖呈现模式、CPU 调度注意事项以及使用 PresentMon 进行帧呈现分析。
Related Articles
帧生成稳定性:为何120帧率仍可能感觉不佳
流畅度关乎时机,而非数字。了解什么是帧时间分布,为何高帧率下糟糕的帧间隔仍会带来卡顿感,以及实际优化的解决步骤。
帧生成节奏:为何流畅度关乎帧时间,而非帧率
高帧率若时序不均,仍会带来糟糕体验。了解何为帧同步,何物会破坏它,以及恢复流畅感的修复步骤。

为什么PC游戏在编译着色器时会卡顿——以及高级着色器分发如何改变这一现状
着色器卡顿发生在 PC 游戏不得不在错误时机编译 GPU 程序的时候。Microsoft 高级着色器交付通过提前准备硬件专用着色器并随游戏一起交付,将大部分工作从玩家 PC 上移走。
CPU卡顿 vs GPU卡顿 vs 着色器卡顿:如何辨别您遇到的是哪一种
并非所有口吃都相同。在调整设置前,先了解三种常见的口吃类型、它们的感受特征,以及最快速的诊断方法。
帧率稳定性:为何60帧的体验可能不如50帧(一致性胜出)
流畅度不仅仅是帧率。它关乎帧间隔的稳定性。了解为何稳定的帧时间比高但不稳定的帧率体验更佳,以及如何稳定帧时序。
流畅度:帧生成间隔比帧率更重要
流畅性在于时序的一致性,而非单纯追求更高的帧数。以下是如何从帧时间角度思考,消除“微卡顿”感的方法。
帧率上限设置方案:适用于VRR与非VRR显示器的稳定目标帧率
稳定的帧率胜过不稳定的峰值。使用这些简单的帧率上限设置方案,为VRR和非VRR显示器稳定帧生成节奏。
帧生成时间:为何120帧率可能感觉不如60帧流畅(平滑度解析)
流畅度在于帧时间的一致性,而非峰值帧率。了解何为帧生成间隔,帧时间如何导致卡顿,以及实现顺滑体验的实际基准线。
着色器卡顿:首次运行为何卡顿及如何减少
着色器卡顿发生在实时编译新特效时。了解如何快速识别它,以及无需安慰剂调整即可减少卡顿的实用方法。

DLSS 4.5 6X:为什么 300 FPS 并不意味着游戏正在渲染 300 帧
DLSS 4.5 可在支持的 RTX 50 系列 GPU 上为每个传统渲染帧生成最多五个额外帧。本指南解释了渲染 FPS 与显示 FPS 之间的区别、为何可在呈现层绕过 CPU 瓶颈,以及为何延迟仍需单独测量。

显存使用量不等于显存需求量:为什么显存占用满并不代表全部真相
在8 GB显卡上看到7.8 GB已使用,可能看起来像是游戏显存耗尽的证据。事情并没有那么简单。本指南将解释VRAM容量、驻留预算、工作集、共享内存,以及如何判断内存压力是否真的导致了卡顿。