性能优化建议
Blinue edited this page 2025-08-10 12:37:15 +00:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

如果你遇到了性能问题(卡顿、延迟、功耗过高等),本文档可能有所帮助。

下面是一些你可能面临的情况:

我的显卡性能不足

如果你无法流畅使用一些有较高性能要求的效果(如 Anime4K、AdaptiveSharpen 等),请尝试下面的操作:

  1. 更换为性能需求更低的效果。如 Anime4K_Upscale_S 比 Anime4K_Upscale_L 快的多CAS 比 AdaptiveSharpen 快的多,它们可以有效提高流畅度,代价是一定程度的画面质量损失。
  2. 尝试更换捕获模式。建议你每种模式都尝试一下。

间歇性卡顿

假设你的显卡性能对于运行 Magpie 绰绰有余,但依然遇到卡顿问题。请尝试下面的操作:

对于 Nvidia 用户

假设您使用的是 Windows 11 24H2

以下提示仅适用于 Nvidia 用户。Nvidia 显卡的驱动程序配置不当可能是造成卡顿的原因。

快速提示:将 Nvidia 驱动程序设置恢复为默认设置(全新安装)将解决大多数问题。但是,如果您坚持使用自己的设置,让我们解释一下驱动程序设置如何给程序带来麻烦。

缩放一段时间后出现奇怪的帧率下降

刚开始时一切正常(游戏 60 FPS / Magpie 60 FPS但大约 10~15 秒后,游戏和 Magpie 的帧率都会下降到 37 FPS 左右,同时 GPU 占用率飙升至 100%GPU 频率从约 1000MHz 降至 700MHz。

首先,如果你在游戏时使用了“电源管理模式:最佳功耗”,尝试将 Magpie 设为“首选最大性能”或“自适应”我尚未测试“自适应”模式效果不保证。游戏本身保持“最佳功耗”模式即可。这样设置后GPU 频率将不会异常下降。

Nvidia App 与 Nvidia 控制面板

不过我的一台电脑即便使用上述方法仍然无法解决而其他设备都能正常恢复。经过调查发现Nvidia App 和 Nvidia 控制面板之间存在兼容性问题。如果你使用 Nvidia App 修改了驱动设置然后在控制面板中修改相同的设置可能会导致控制面板崩溃或出现“访问被拒绝”的错误。此外Nvidia App 进行的驱动设置更改不会真正应用到游戏或程序。

如果你使用的是 Nvidia App 11.0.2.341 版本,并搭配 572.16 版驱动,请不要通过 Nvidia App 调整 Nvidia 驱动设置。解决方案如下:

  1. 关闭 Nvidia App 和 Nvidia 控制面板。
  2. 进入 C:\ProgramData\NVIDIA Corporation\Drs 目录,删除所有 .bin 文件,例如 nvdrsdb0.bin、nvdrsdb1.bin、nvdrssel.bin、update.bin 等。
  3. 重新打开 Nvidia 控制面板,手动重新配置所有全局设置和特定程序的设置。
  4. 之后避免使用 Nvidia App 修改驱动设置。

画面看起来不如原生游戏窗口流畅

使用 Graphics CaptureDesktop Duplication 时,即使游戏和 Magpie 都是 60 FPS画面仍然不够流畅。

调查结果表明,这可能与垂直同步有关。至少在 Windows 11 24H2 版本中,游戏必须开启垂直同步,才能保证 WGC 和 DXGI 捕获模式不会丢帧。否则,即使捕获和游戏都运行在 60 FPS仍可能发生帧丢失或重复帧现象。

推荐的垂直同步设置:

  • 游戏:使用传统垂直同步模式,例如:
    • “使用 3D 应用程序设置”并在游戏内启用 V-Sync
    • 直接选择“垂直同步:开”
  • 不要使用以下选项:
    • 关闭垂直同步
    • “垂直同步:快速”模式
  • 未测试但可能有效的选项:
    • “垂直同步:自适应 / 自适应(半刷新率)”

对于 Magpie请选择“使用 3D 应用程序设置”。

使用 Desktop Duplication 时丢帧严重

即使游戏 60 FPS / Magpie 60 FPS仍然会遇到大量丢帧问题。我发现这种情况出现在 Magpie v0.10.6 版本。解决方法:

  • 在 Magpie 设置中启用垂直同步,并在 Nvidia 控制面板中将 Magpie 的垂直同步设置为“使用 3D 应用程序设置”。
  • 升级到 Magpie v0.11.1 也能解决此问题。

GPU 使用率接近 100% 时 Magpie 丢帧严重

同时,游戏帧率略低于显示器帧率,例如游戏帧率 57 FPS / 显示器帧率 60 Hz。如果不使用 Magpie原生游戏窗口看起来很流畅。

尝试关闭“硬件加速 GPU 计划”并重启。我发现,当 GPU 负载过重且 GPU 计划开启时WGC 和桌面复制都无法正确处理帧。关闭 GPU 计划后,游戏帧率仍然很低,但 Magpie 不会再“视觉上”低于 10 FPS。

屏幕观感不流畅,但帧率看起来正常

游戏 60 FPS / Magpie 60 FPS / 显示器 60 Hz但出现丢帧。这种情况在未缩放、直接运行游戏窗口时也会发生。

请检查是否启用了“最大帧率限制”和垂直同步。例如,在上述情况下,如果你已经打开了垂直同步,同时将最大帧率限制设为 60 FPS请移除该限制。

如果你有其他帧率限制程序(如 MSI Afterburner RTSS也请将其关闭。

常见误区:

  1. 将“最大帧率”设置为全局 60 FPS然后对某些程序关闭帧率限制这实际上不会如你所愿生效。如果你对程序关闭了最大帧率限制和垂直同步但启用了全局最大帧率游戏和 Magpie 仍会遵循全局的帧率限制。
  2. 有人将“最大帧率”视作更优的垂直同步方法,理由是“这样可以降低输入延迟”。其实并非如此。最大帧率限制并不是垂直同步,它无法保证每一帧都能被完整呈现,而传统的垂直同步正是为此目的而设计的。

低延迟模式

如果遇到其他奇怪的现象,可以检查这些选项。我不确定 Magpie 是否有这些问题,但对于 Lossless Scaling使用“低延迟模式超高”会导致 WGC API 缩放后拖拽鼠标时,释放鼠标按钮后鼠标位置和释放按钮时不一致。

为 Magpie 设置“低延迟模式:关闭”。但对于游戏,如果你确定启用“低延迟模式:超高”不会引发问题,也可以保留该设置。例如,一些旧的 DirectX 9 游戏在启用此模式后可能会出现掉帧或输入延迟问题,如果遇到这种情况,建议将其关闭。

对于 AMD 用户

欢迎分享更多性能优化技巧!你也可以查看 Nvidia 相关建议,看看其中哪些适用于你的配置。

超线程和大小核CPU

超线程与 Intel Alder Lake 大小核架构 CPU

如果你不想关闭超线程,可以使用批处理命令来限制游戏和 Magpie 的 CPU 亲和性Affinity。对游戏或其启动器使用 cmd.exe 批处理 start /affinity 0x55 "" "C:\path to\game.exe",游戏将继承父进程的 CPU 亲和性。对 Magpie 使用 start /affinity 0xaa。此外,你还可以调整游戏图形设置,尽量将游戏的 CPU 占用控制在 50% 以下(以 4 核 8 线程 CPU 为例,相当于使用 4 个物理核心)。

0x55 指定游戏在 4 核 CPU 的 0 2 4 6 逻辑核心上运行0xaa 指定其他程序在 1 3 5 7 上运行。

如果需要提高进程优先级,可以使用 start /abovenormal 为游戏和 Magpie 设置“高于正常”优先级。但需要注意,某些游戏在设置 CPU 亲和性和提高进程优先级后可能更容易崩溃具体原因不明。例如dwm.exe 系统服务本身就以“高”优先级运行。若遇到稳定性问题,可以考虑改用高性能电源计划,让 CPU 长时间运行在最高频率。

0x55 和 0xaa 只是示例值,你可以使用 Bitsum CPU 亲和性计算器 来计算适合自己 CPU 的值。

此外,你也可以利用这种方法,强制游戏仅运行在 Intel Alder Lake 大小核架构的“大核”上,以获得更好的性能。

参考: https://superuser.com/questions/690509/does-windows-know-how-to-appropriately-assign-threads-to-a-quad-core-processor-t

仍然卡顿?

  1. 更换捕获模式。建议你每种模式都尝试一下。
  2. 打开“禁用 DirectFlip”。DirectFlip 是一个用于降低输入延迟的技术,但可能和某些游戏不兼容。
  3. 试试切换使用的显卡。
  4. 提高 Magpie 的进程优先级以及在驱动中提高 Magpie 的优先级(如果有这个选项)。
  5. 如果上面的尝试不起作用,请提交一个 Issue (Performance)

我想降低 Magpie 的功耗

在需要节省电量或降低发热时,请尝试下面的操作:

  1. 限制帧率。
  2. 更换为性能需求更低的效果。