在加载游戏和观看 Flash 视频时出现大量软页面错误

在加载游戏和观看 Flash 视频时出现大量软页面错误

我的电脑在玩即时加载资源的游戏时出现了一个奇怪的问题。也许我找错了地方,但我似乎找不到遇到类似问题的人。

如果不清楚,我会举几个例子。在 Source 游戏中,映射器能够通过告诉引擎何时何地隐藏对象来优化事物,这样它们就不会添加到场景中,直到您绕过拐角或打开门。当需要加载这些对象时,我的电脑就会卡住。以 Portal 2 为例。一旦某个区域的加载屏幕消失,我就会进入关卡。立即,我看到一个冻结的屏幕和断断续续/重复的音频,持续大约一秒钟。一旦过去,每个人都会继续以全帧速率顺利运行。然后我走到一扇门前,触发它打开。另一边的房间加载时,又是一秒钟的静止和断断续续的音频。如果你要看别人玩游戏,这种情况永远不会发生。无论如何,我可以忍受。这很烦人,但它并没有真正干扰游戏玩法。现在让我们玩一款随着您的进步而不断加载的游戏,Sonic Generations。静止不动时,我获得了丝般顺滑的帧速率。但是,一旦他开始向前跑,加载更多关卡,我的帧速率就会下降到 <1 FPS,这完全无法玩。如今越来越多的游戏似乎都出现了这种情况,这就是为什么我终于开始认真考虑排除故障。

我非常怀疑这些暂停是游戏本身的程序。加载屏幕的设计目的是在数据加载时流畅运行,在任何其他机器上都是如此。再次以《索尼克》为例,在加载完成之前,即使是加载屏幕上的移动部分也非常不连贯。

我差不多四年前买了这台电脑,自从开始用它玩 3D 游戏以来就一直有这个问题。从那时起,我就更换了主板、硬盘和显卡,因为它们都坏了。(机箱风扇有一天停止工作,硬盘又是另一回事。)

运行启用 Aero 的 Win7 Ultimate 64 位、Intel 2.5Ghz 四核处理器、4GB RAM 和 nVidia GTX 460。

非常感谢大家!

更新:很明显,我遇到了大量的页面错误。平均每秒 170,000Sonic Generations 的平均加载速度为 70,000,而 Portal 2 的平均加载速度为非常稳定 30,000在 Livestream.com 观看直播时。根据资源监视器,这些甚至不是硬故障。我有点好奇这些数字与其他人相比如何。

附录:不妨再举一个例子,并说明一个潜在症状。首先,一款名为 Trackmania 的赛车游戏。在单人比赛中,没有明显的页面错误(除了其他程序可能产生的错误),游戏运行顺畅无比。然而,当在线玩游戏时,我会在频繁但随机的时间间隔内遇到大量故障(和页面错误峰值)。我会一路比赛,游戏会暂停一秒钟或更长时间,然后恢复,我的车倒在墙边,一团糟。隐藏其他玩家的车也不能解决问题。

至于潜在症状……我一直避免提及它,因为我担心这可能是一个不相关的问题,并且不想让故障排除者走上错误的道路。在这一点上,为什么不提它呢?基本上,在观看视频一段时间后,我的电脑会完全冻结。循环音频,整个屏幕(包括光标)无响应,数字锁无法切换,只能硬关机。它可以在几分钟或几小时内触发。通常,视口越大,发生得越快。只要打开硬件加速,全屏 Youtube 视频就是安全的。

全屏播放 Youtube 时开启硬件加速似乎不会产生页面错误。但窗口化播放时会产生页面错误。Livestream 总是会产生页面错误,无论是否全屏,是否加速。然而,游戏似乎从未像这样冻结我的电脑,尽管它们本身会产生大量页面错误。

(将标题从“在后台加载游戏资产时图形变得不流畅”更改为“在加载游戏和观看 Flash 视频时出现大量软页面错误。)

答案1

在查看了此处的信息并发现问题在于他出现了很多页面错误之后,我将在这里添加一些我会研究的可能性。

如果这些是软页面错误,并且您遇到了很多这样的错误,我猜导致这些错误的内存访问是纹理资源的请求。显卡具有一定数量的板载内存来加速纹理获取请求,但出于某种原因,可能是驱动程序没有在板载内存中缓存足够的纹理,或者根本没有缓存任何纹理。我不太熟悉 nVidia 的显卡驱动程序设置(过去 4 年我主要运行 ATI 卡),所以我不确定驱动程序设置、超频设置甚至 BIOS 设置是否是造成这种情况的原因。但是,我会调查一下,看看它是否是问题的根源。

另外,需要注意的是,我像您一样记录了 Portal 2 的页面错误/秒,几乎没有发现任何错误。当然,我的系统在 Crossfire 中使用 2 个 Radeon HD 6970,但是您的显卡肯定能够处理 Portal 2 而不会出现这样的页面错误。如果一切运行正常,我预计您会看到类似这样的图像: 我的计算机上 Portal 2 的页面错误/秒

如果我们想排除显卡是罪魁祸首(或者无论如何是计算机正在使用的图形硬件),我建议禁用 Aero,然后看看当您在桌面空闲时会发生什么。如果页面错误的数量减少,那么我的直觉是它与图形有关,这可能是正确的。如果不是,那么它可能在其他地方。

答案2

软页面错误可能是由进程发出的某些系统调用生成的。可以使用 pfmon 工具找出所涉及的确切系统调用,如以下 vmware 文章中所述:

Windows 应用程序生成的过多页面错误可能会影响虚拟机的性能

pfmon 仍可从以下网址下载:Windows 2000 资源工具包工具作为一个单独下载。它是一个 32 位程序,但可能仍然适合您。

[编辑]

我在自己的电脑上测试了 pfmon,结果发现软页面错误的数量非常多,这令我震惊。Firefox 或 Internet Explorer 几秒钟内就会产生数万个这样的错误,而我却没有看到任何速度下降。

我的结论是,计算软页面错误是没有意义的。显然,Windows 会理所当然地产生它们,而且它们只是它的工作方式。Windows 需要在内存中搜索页面这一事实可能是 Linux 比 Windows 更快的另一个解释。

因此,只需将其归咎于 Windows 中低效的内存管理,并只担心硬页面错误(从您发布的列表中看,其数量相当低)。进程出现大量软页面错误显然仅表明该进程进行了大量内存处理。

如果您仍然认为您的计算机存在内存问题,请查看文章 通过监控检测并解决性能问题,它使用的工具来自 Windows Server 2003 资源工具包工具

您还可以运行硬件测试,例如Memtest86+确实如此,但我并不完全相信你的问题确实与记忆有关。

答案3

我可以建议稍微增加 RAM 和 CPU 的电压吗?在使用质量差的主板或普通的坏 RAM 时,我也遇到过类似的问题。稍微提高电压就能让一切恢复正常 - 并且系统在之后的几年里都能完美运行。

相关内容