CPU 与 GPU 瓶颈计算器

测得的帧时间,而非通用瓶颈分数

请使用从同一可重复场景、设置和测试方法中采集的 CPU 与 GPU 帧时间。仅凭利用率无法证明存在瓶颈。本工具没有硬件型号数据库,也不会提供购买或升级建议。

帧时间分析

描述基准测试环境

标签为可选项。请勿输入账户名称、序列号或机密项目信息。

直接查看的数值通过 Livewire 处理。流程中的数值(包括可选标签)会写入页面 URL 和浏览器历史记录,以便每个步骤恢复这些数值。请勿输入机密的工作负载名称或信息。

使用这款瓶颈计算器,比较在同一游戏场景中测得的 CPU 和 GPU 帧时间。它会估算两者各自的帧率上限,仅在差距超过所设容差时才判断哪一方更慢,并说明为什么一次采集无法转化为适用于所有游戏或设置的通用瓶颈百分比。

如何分析 CPU 或 GPU 瓶颈

  1. 1

    采集一个可重复的场景

    使用游戏内置基准测试、回放或固定路线,并保持分辨率、画质设置、帧率上限和 VSync 状态一致。开始记录前先让游戏充分预热并进入稳定状态。

  2. 2

    输入 CPU 帧时间

    从性能分析器或性能采集中复制 CPU 处理每帧所需的毫秒数。请使用能够代表所选测试区间的数值。

  3. 3

    输入 GPU 帧时间

    从同一场景和同一采集区间复制相应的 GPU 时间。不要混用不同测试轮次、预设或分辨率下的结果。

  4. 4

    设置容差并解读结果

    容差会把较小的差异视为均衡,因为正常的轮次间波动可能会让非常接近的结果反转。在依据微小差距采取行动前,请重复采集。

帧时间是更有用的起点

每秒帧数是帧时间的倒数。时间以毫秒为单位时:

帧率上限 = 1000 / 帧时间(ms)

测得较慢的阶段决定简化后的流水线上限:

估算上限 = 1000 / max(CPU 帧时间, GPU 帧时间)

这是用于诊断的估算值,并不保证游戏会严格以该速率呈现帧。帧率限制、同步、队列、引擎任务、加载、操作系统调度和画面呈现都可能影响实际观察到的 FPS。Microsoft 在 DirectX 性能分析指南中分别定义每帧 CPU 时间和每帧 GPU 时间,因为任意一方都有可能超过可用的帧时间预算。

目标帧率 每帧时间预算
30 FPS 33.33 ms
60 FPS 16.67 ms
120 FPS 8.33 ms
144 FPS 6.94 ms
240 FPS 4.17 ms

1000 / ms 的换算结果是被测阶段的上限。例如,12 ms 的 CPU 时间对应约 83.33 FPS,而 7 ms 的 GPU 时间对应约 142.86 FPS。在这次采集中,CPU 一侧更慢,简化后的上限约为 83.33 FPS。

为什么容差很重要

不应以虚假的确定性报告彼此接近的帧时间。这款计算器会将绝对差值与较慢一方的帧时间进行比较:

相对差距 = |CPU ms - GPU ms| / max(CPU ms, GPU ms) × 100

如果差距处于所选容差范围内,本次采集的结果会被视为均衡或无法确定。如果差距超过容差,帧时间较长的一方就是当前限制性能的一方。

CPU 时间 GPU 时间 相对差距 容差为 5% 时的结果
12.0 ms 7.0 ms 41.67% 受 CPU 一侧限制
6.0 ms 10.0 ms 40.00% 受 GPU 一侧限制
8.0 ms 8.3 ms 3.61% 均衡或过于接近,无法判断

这个百分比描述一个工作负载中两个计时值之间的差距。它不是 CPU 或 GPU 性能被浪费的比例,也不能预测更换硬件后能够获得多大性能提升。

让采集过程可复现

有意义的比较需要保持工作负载稳定。请确保以下条件相同:

  • 游戏及引擎版本;
  • 存档、回放、基准测试片段或固定移动路线;
  • 分辨率、渲染比例、画质预设和图形 API;
  • 帧率上限、VSync 和动态分辨率状态;
  • 驱动程序设置、电源模式和后台工作负载;
  • 预热时间和采集时长。

应多次运行测试并比较具有代表性的统计数据,而不要依赖一个短样本。AMD 的 CPU 性能指南建议固定测试场景和随机种子等变量;其 Unreal Engine 指南则建议通过改变分辨率来辅助诊断:如果大幅提高渲染分辨率后性能几乎不变,这就构成了值得进一步调查该工作负载是否受 CPU 限制的依据。但它仍然只是依据,而不是通用于所有情况的定论。

为什么利用率不能作为确凿证据

利用率可以辅助诊断,但无法单独证明原因。即使某个主线程或渲染线程已经完全饱和,总体 CPU 利用率看起来仍可能不高。GPU 利用率较低可能源于帧率限制、等待 CPU、同步,或提交的工作过少。GPU 利用率较高只说明设备当时很忙;它不能指出具体哪个渲染阶段开销最大,也无法预测升级结果。

计时工具可以提供更完整的背景信息。Intel PresentMon 会记录帧和 GPU 遥测数据;NVIDIA Nsight 会显示 CPU 与 GPU 的帧持续时间以及 GPU 工作负载区间;AMD Radeon GPU Profiler 则可视化队列计时和 GPU 空闲时段。即使性能分析器中的阈值也只是启发式规则:Radeon GPU Profiler 对 CPU 受限状态的分类使用可调节的 GPU 空闲阈值,而不是适用于每种引擎的定律。

1% 低帧能说明什么,又不能说明什么

1% 低帧概括了帧时间分布中较慢的尾部,因此有助于发现平均值可能掩盖的帧呈现不均问题。它不能揭示这些慢帧究竟是由 CPU、GPU、资源流式加载、着色器编译、内存压力还是其他停顿造成的。

不同工具的定义也不一致。有些报告根据第 99 百分位帧时间计算帧率(1000 / p99 帧时间),另一些则计算最慢 1% FPS 样本的平均值。NVIDIA Nsight Systems 将第 99 百分位帧长度定义为仅有 1% 的帧比它更长的数值。比较结果时,请记录使用的工具和定义,不要用 1% 低帧值替代相互对应的 CPU 和 GPU 帧时间。

为什么通用瓶颈百分比会产生误导

一台电脑并不存在永久固定的 CPU/GPU 瓶颈比例。限制性能的任务可能随游戏、场景、分辨率、设置、引擎版本、驱动程序、帧率上限和目标帧率而改变。繁忙的城市场景可能给模拟和绘制调用提交带来更大压力,而另一个采用更高渲染比例的场景可能在 GPU 上耗费更多时间。

仅依据硬件型号的计算器无法观察这些条件。如果没有同一场景中的实际计时数据,诸如“瓶颈 23%”这样的结果并不具备稳定的技术含义。请使用这款计算器描述你实际采集到的情况,在你关心的工作负载下重复测试;需要找出具体是哪项任务造成限制时,请使用时间线性能分析器。

官方技术参考资料

常见问题

请输入从同一次性能分析器采集和同一场景中获得的每帧 CPU 时间与每帧 GPU 时间,单位为毫秒。不要输入总体利用率百分比、宣传的时钟频率、基准测试得分或在不同设置下收集的计时数据。

不是。这表示在本次采集中,测得的 CPU 帧时间比 GPU 帧时间长,且差距超过了所选容差。帧率限制、游戏设置、后台任务、某个开销很大的线程或场景本身都可能改变结果。在得出更广泛的结论前,请先分析具体工作负载。

5% 是区分明显差距与接近结果的实用起点,但并非通用标准。如果重复测试之间的波动更大,应使用更宽的容差;在判断微小差异前,也应比较多次采集结果。

不可以。它们概括的是已呈现帧性能的不同部分,并不是 CPU 和 GPU 计时。请使用相互对应的 CPU-ms 和 GPU-ms 测量值。平均 FPS 和 1% 低帧应作为吞吐量和帧时间稳定性的独立参考信息。

与 CPU 的模拟或提交工作相比,分辨率和渲染比例通常会更直接地改变 GPU 的工作量。提高它们可能让较长的帧时间转移到 GPU 一侧;降低它们则可能在更高帧率下暴露 CPU 一侧的限制。新结果描述的是新的工作负载,并不与原结果矛盾。

相关工具