当我玩最近的 3D 游戏(《战地 3》和《战地 4》、《古墓丽影》、《黑道圣徒 3》和《黑道圣徒 4》等)时,我会遇到周期性的 FPS 下降,例如在《战地 3》中,帧率会从平均约 70-80 fps 下降到 20-30 fps;即使我站着不动并注视同一个位置。这种情况大约每 3 秒发生一次,下降幅度只有一个峰值——持续半秒。
这不是显卡或驱动程序的问题,因为我将 AMD 显卡换成了 NVIDIA,但问题仍然存在。游戏运行时,我监控了 CPU、RAM、页面文件和显卡:每个 CPU 核心都保持在 70% 以下,没有一个核心达到最大值,RAM 始终保持在 12GB 以下,页面文件没有受到影响
现在我怎样才能使 fps 变得恒定或者如何调试这个问题?我没什么主意了。
我的系统:
- 主板:AsRock Fatal1ty 990FX Killer
- CPU:AMD FX-9370(4.4Ghz 8 核)
- 内存:Corsair 16GB 1860MHz(双通道2 x 8GB)
- 电源:Corsair 750W
- 存储:三星 Evo SSD(操作系统)和三星 1TB 7200rpm(游戏)
- 显卡:华硕 Radeon R9 280X
我尝试过的:
- 更新显卡驱动程序(至 14.9)
- 降级显卡驱动程序(至 13.11)
- 将显卡换成 NVIDIA Geforce GTX 760 - 帧率仍然频繁下降
- 尝试几乎所有的 BIOS/UEFI 设置
- 将 BIOS/UEFI 设置重置为默认值
- 使用 Prime95 对 CPU 和 RAM 进行压力测试……没有电源下降,也没有符合 3s-0.5s 模式的视觉提示
- 监控 CPU 和显卡的热量 - CPU 在压力下达到 68 摄氏度,而显卡实际上并没有过热(抱歉,忘记了数字)。此外,CPU 是液冷的。
...以下是一些图表:https://i.stack.imgur.com/hSwSv.jpg
- Catzilla 基准测试的屏幕截图,显示了下降(因为它会持续测量和显示 fps,而不仅仅是每秒)。我还注意到频率可能会有一点变化,即间隙之间的距离并不均匀。
- 另一个 Catzilla 屏幕截图,同样的事情,但间隙之间只有 2 秒。
- GPUtweak(一种时间分辨率为 1 秒的图形监控工具)的屏幕截图...请注意,在导致延迟的第一个基准测试(左)中,存在混合 GPU 使用情况,而在右侧的永久高 GPU 测试中则没有。
- CPU 使用率截图。在基准测试期间,会出现这种尖峰模式 - 不知道这是正常现象还是与延迟问题有关。
...我还注意到,在玩了一些游戏/热身后,情况会变得更糟。通常,如果我连续运行两次(Catzilla)基准测试,第一次运行会出现 1-3 次间隙,而第二次运行会出现 10-20 次间隙。
编辑 1 - 2014-10-05 14:29 GMT+1
我运行了 GPU-Z 的文件记录工具。在上一次 Catzilla 基准测试期间(在此期间出现大量峰值),“VDDC 电流(A)”列中有“断电”记录,即值如下所示:
61
60.2
68
1
60.8
时间分辨率为 0.1 秒,因此每行代表十分之一秒。这是正常的吗 - 可能是在黑屏或类似情况下?此外,此列中的值在约 2-3 秒内高度振荡。可能是电源问题?但我要检查什么来确认这一点 - 更换主板或电源?
编辑 2 - 2014-10-05 23:07 GMT+1
...好吧,这很奇怪。当系统处于冷态(长时间暂停后第一次运行基准测试)时,滞后现象消失,但变热后(快速连续运行第二次基准测试)开始出现滞后现象,整体性能下降。当系统处于冷态时,显卡传感器显示 40 摄氏度,CPU 显示 64 摄氏度。CPU 变化不大(在满负荷下上升到 70 摄氏度左右),但当 GPU 达到 65-70 摄氏度时,问题就出现了。但话又说回来……我把显卡换成了 NVIDIA——而且我认为这些温度它们仍然可以承受。也许是主板变热了?有这回事吗?北桥?
编辑 3 - 2014-10-05 23:27 GMT+1
在 Process Explorer 中我清楚地看到了错误(右侧):https://i.stack.imgur.com/qKluW.png
答案1
(有点)找到了解决方案:
问题出在组件/高温和热节流的组合上:CPU 和 GPU 都消耗大量能量并变得非常热*,而主板具有节流的“功能”某物,可能是 CPU 温度过高。我尝试了这里的所有解决方案(除了最后一个,即修改主板):http://www.overclock.net/t/1202751/amd-fx-cpu-throttling-fixes-please-sticky
...它可以完美运行几乎所有游戏,除了战地系列(原因仍不清楚)。所以我用我女朋友的 Gigabyte 970A-DS3P 换了它,虽然是低端产品,但可以满足我的需求,而且没有节流功能。
*我没想到 70°C 是“非常热”的,因为我以前的电脑是 Shuttle PC(台式机的小砖头,通风很差),最高 CPU 温度是 105°C。它仍然可以在这个温度下运行游戏,只是不能运行太久。
所以,是的,如果您遇到类似的事情,请检查问题是否在某个温度水平下开始出现(最好的工具是:高速风扇)——对我来说,GPU 温度大约为 66°C。
答案2
作为开发人员和日常用户,在与“外界”进行“无法解释”的互动时,都会遇到一些奇怪的经历,我首先要寻找的东西(而且这几次都是成功的)就是防病毒软件。
话虽如此,我想你会想要熟悉 ProcDump(http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx)。
这里还有其他建议:http://windowsitpro.com/systems-management/got-high-cpu-usage-problems-procdump-em,但是除了 Process Monitor 之外,我对它们都不熟悉。