wiki

osu! 性能问题检查

osu! 会尽最大努力以合理的默认设置运行,并在你做某些会导致游戏性能下降的事情时主动提醒您。

不幸的是,由于运行 osu! 的设备众多,很难确保每位用户都获得最佳性能。这个页面旨在帮助你对遇到的性能问题进行自我诊断,同时也能让你学习故障排除所需要掌握的专业术语(以及你可以做的检查),这样你寻求支持时我们能为你提供帮助。

需要检查的东西

  • 你在使用皮肤吗?如果是,请尝试切换为默认皮肤,看看情况是否有所改善。某些皮肤的制作方式可能会导致一部分系统出现性能问题。
  • 你的帧数限制设置是 无限制(游戏中) 吗?尝试使用 最佳 (Optimal) 限制设置看看它是否有帮助。关于为什么 无限制 不是最好的选择,请参见下面的部分
  • 你在使用窗口化吗?请尝试切换到全屏模式。
  • 你是否更新了驱动程序(特别是显卡的)?尝试更新看看会不会有帮助。或者如果你最近更新了他们,请尝试回滚为旧版本的驱动程序。
  • 你的电脑是否使用了 NVIDIA Optimus 或者类似的双显卡设置?如果有,请尝试强制让 osu! 在单独的显卡上运行来对比性能。一般来说,在集成显卡上运行 osu! 更稳定。请在 Windows 中搜索“图形设置”并且将 osu! 的图形性能首选项设为“节能”或“高性能”来试出更好的设置。

“卡顿”的类型

当所有问题都描述为“卡顿”时很难提供帮助,所以让我们先为一些特定情况定义术语。

音频卡顿(Audio stuttering)

谱面音频倒带或故障。基本上在游戏卡顿时可以在音频中听到。当报告或诊断此问题时,以下方法可能会提供帮助:

  • 尝试是否所有的音频设备都存在这个问题。如果你在使用 USB 耳机,请尝试连接电脑的模拟输出接口。
  • 检查在游戏设置中打开 Audio compatibility mode(音频兼容性模式)是否有帮助。

画面卡顿(Spike frame)

在游玩中,屏幕上的所有东西都卡住一段时间。这可能不止一次发生,并且发生的时间间隔随机或固定。这会很影响游戏体验。当报告或诊断此问题时,以下方法可能会提供帮助:

  • 计算平均一次游玩时发生的次数
  • 检查它是否总是发生
  • 检查它发生的频率,以及它是否在一致的时间间隔内。
  • 检查它是否仍然在电脑重新启动后发生。
  • 尝试关闭任何显示游戏内界面的应用程序(Discord、Steam、NVIDIA ShadowPlay 等)
  • 确保你启动了游戏模式。它可以让 Windows 为 osu! 提供专用核心和资源。
  • 打开任务管理器并按 CPU 排序(在详细信息下),查找低帧率时 CPU 使用率高的程序,例如杀毒软件。可以使用 Auto 让 osu! 自动播放谱面,窗口化 osu! 或使用第二块屏幕显示任务管理器来诊断问题

输入延迟

敲击键盘,移动鼠标或数位板笔时,在屏幕上看到相应的操作有明显延迟。当报告或诊断此问题时,以下方法可能会提供帮助:

  • 尝试是否所有的输入设备都存在这个问题,或者只有一个设备有问题。
  • 如果你正在使用非官方驱动,请尝试切换为官方驱动。
  • 确保 osu! 运行在全屏模式下。窗口化和无边框会有一帧的延迟。

失控

在游玩时,一个或多个输入设备停止响应。 屏幕上的所有内容都正确移动,但在设备响应之前无法正常游玩。当报告或诊断此问题时,以下方法可能会提供帮助:

  • 按下 Ctrl + F11 打开帧时间显示图。 发生这种情况时检查图表上是否有很多白色(这意味着您系统上的另一个应用程序或驱动程序正在使用过多的 CPU 时间,延迟输入)。

低帧率

在游玩时,帧数跟不上,导致屏幕上的物体抖动和移动的卡顿。这也可能导致更高的感知输入延迟。当报告或诊断此问题时,以下方法可能会提供帮助:

  • 检查此问题是否发生在电脑重启后。
  • 尝试关闭任何显示游戏内界面的应用程序(Discord、Steam、NVIDIA ShadowPlay 等)。
  • 确保您没有在显示驱动程序上强制启用 VSync(它应该设置为“关闭”或“应用程序首选项”)。
  • 尝试更改帧数限制设置,看看是否可以改善问题。
  • 确保 osu! 运行在独占全屏(不是无边框)模式下。独占全屏可以提供更高的性能。
  • 确保你启动了游戏模式。它可以让 Windows 为 osu! 提供专用核心和资源。
  • 打开任务管理器并按 CPU 排序(在详细信息下),查找低帧率时 CPU 使用率高的程序,例如杀毒软件。可以使用 Auto 让 osu! 自动播放谱面,窗口化 osu! 或使用第二块屏幕显示任务管理器来诊断问题

帧数限制

osu! 提供多个帧数限制设置,每个设置都有好处和坏处。但是无论怎么设置 osu! 都会在菜单界面中限制帧率以节约 CPU 使用率。

垂直同步

这个设置依赖于驱动程序提供的垂直同步机制。它保证不会出现屏幕撕裂,但由于需要在显示前缓冲帧,因此会增加 1-2 帧的延迟。

一般不推荐用于 60Hz 显示器。它在刷新率高于 120Hz 时会更有用,但对于 GSync 和 FreeSync 显示器,使用 VSync 来避免撕裂显得太多余了。

省电 (Power Saving)

这个设置旨在节省电量,同时提供差不多的游戏体验。 它将以 2 倍显示器刷新率运行并尝试保持一致的帧同步。

推荐老电脑以及要节省电池电量的笔记本电脑使用。

最佳 (Optimal)

这个设置尝试将帧速率保持为刷新率的 8 倍,并且不会高于 960 FPS。这是我们为不想将 CPU/GPU 运行到极限的用户推荐的帧限制器,同时保持高水平的性能,从而降低输入延迟。

在使用 无限制 前请优先使用此设置以减少渲染的帧数,从而降低垃圾回收所需要的性能(他可能会导致屏幕卡顿)。

无限制 (Unlimited)

这个设置不会限制帧率。osu! 将使用 CPU/GPU 的全部性能并以尽可能快的速度渲染。

虽然这似乎是最好的选择(如果您的硬件支持,确实可以),但您应该考虑以下几点:

  • 渲染更多帧,垃圾回收的潜在性能开销会更高。
  • 通过将你的 CPU 和 GPU 推到极限,它们有可能会节流,从而降低你的整体性能。
  • GPU 通常不想渲染到 1000 帧以上,所以可能会发生异常行为,包括性能比其他模式下更低或延迟更高。

即便如此,如果发热和潜在的过度使用硬件不是问题,无限制 设置可能是提供最稳定帧数的选项。

自定义 (Custom)

Cutting Edge 用户注意:CustomFrameLimit 的值设置超过 999 会重调回 999;在 Stable 中,此值可正常设置大于 1000。
注意:你无法在游戏中使用 F7。调整至这个设置:你需要在设定中调为 Custom 然后重启。否则,你需要再次手动调整 FrameSync 的值。

这个帧数限制设置将试图保持帧数在你设定的值;然而,默认下这个设置不可选。

改变 osu! 的自定义帧数需要改变配置文件的一些参数:

  1. 在设定中点击打开 osu! 所在文件夹,或手动定位至文件夹。(默认下,Windows 中为 C:\Users\<你的计算机用户名>\AppData\Local\osu!; Mac 中为 /Applications/osu!.app/Contents/Resources/drive_c/osu!。)
  2. 关闭 osu!。
  3. 使用记事本或任意文本编辑器打开 osu!.<你的计算机用户名>.cfg
  4. 定位至 FrameSync = <值> 并将其改为 Custom
  5. 定位至 CustomFrameLimit = <值> 并将其改为所需值。
  6. 保存配置文件。(如果你没有在第二步关闭 osu!,请在关闭后保存。)
  7. 重启游戏。