我有一个应用程序/游戏,几个月前运行顺畅,但最近我发现它运行起来比平时更慢(每秒帧数变得相当低)。
我想可能是我安装的某些程序导致此应用程序延迟,所以我终止了所有不必要的进程(包括 explorer.exe),只留下核心进程。我甚至关闭了所有不必要的服务。我还关闭了杀毒软件,这样我的操作系统此时不应该在后台运行任何不必要的任务。
当我加载游戏时,它的 FPS 仍然很低。
我知道从那时起我没有做过任何硬件更改,并且想知道为什么游戏在所有可用资源下仍然运行缓慢,我接下来尝试的是设置另一个分区并安装全新的 Windows 7。然后我在该分区上重新安装了游戏,令人惊讶的是它像一年前一样顺利运行。
在两个分区之间切换时,我可以发现游戏的 FPS 有很大差异,即使我运行“Kill_Unnessessary_Processes.bat”也是如此。我甚至注意到我的浏览器加载和滚动网页和 Flash 视频的速度更快了。
此时,两个分区之间的唯一区别是旧分区安装了更多程序,但处于非活动状态。这让我想到了我的问题,当考虑“软件膨胀”时,即使硬盘上没有运行程序,硬盘速度是否会随着时间的推移而变慢?
我能想到两个可能的原因:1)查找注册表中的内容需要更长的时间;2)可能有一些我不知道的 rootkit 正在悄悄窃取第一个分区上的资源。
我想了解可能导致这种情况的其他可能性。如果可能的话,我想切换回一个分区。
答案1
您是否尝试过一些较老的技巧,例如对硬盘进行碎片整理?
除此之外,我能想到的唯一事情是,你在查看申请时错过了一些东西(我最喜欢的工具是Microsoft/Sysinternals 自动运行) 或者是某个地方的驱动程序更新/某个程序的自动更新导致了问题。
只要软件没有干扰关键部分,注册表的事情基本上就是一个神话。
不,很多程序不会减慢您的计算机速度,除非驱动器碎片严重。如果您是中级/真正的高级用户,正如您所说的那样,您会调整服务,只需确保您没有关闭关键的“维护任务”,这些任务可让您的机器保持最佳性能。
最后,检查计算机管理中的性能计数器,看看它们是否可以让您了解问题何时开始以及当时发生了什么。
答案2
确保终止所有可能触发任何磁盘活动的正在运行的服务。这通常是您发现每秒帧数下降的原因。
如果你是铁杆用户,也可以尝试看看调整指南获得一些关于如何针对市场上一些最受欢迎的游戏优化您的系统的好建议。
答案3
正如 Wil 所说,Autoruns 很有用,但在开始禁用之前,您需要确切知道问题的原因。为此,我建议进程探索器(同样来自 Sysinternals)。获取它并查看正在运行的内容。
查看 CPU 图表,看看空闲时 CPU 是否为 ~0%。如果不是,请确保CPU History
启用了该列,并查看哪个进程正在消耗周期。如果它是由 Explorer 生成的(请确保显示处于默认的树形模式),则尝试退出该程序(如果没有界面,则将其终止)。如果它是 SVCHOST.EXE 或 SERVICES.EXE 下的其他项目的各种实例之一,请双击它并查看选项卡Services
,然后尝试停止其中的服务,确保在每个服务之后观察 CPU 图表。
你应该现在知道是什么导致了问题(除非是 shell 扩展,在这种情况下 Explorer.exe 本身将使用 CPU)。现在,您可以在想要玩游戏时退出有问题的程序/服务/等,或者首先阻止它运行,具体取决于它的启动方式。现在是时候使用自动运行和/或ShellEx查看器将其关闭。无论哪种情况,请确保使用验证签名的选项并标记/隐藏 Microsoft 条目,以便更轻松地查看安装了哪些第三方(即非操作系统)项目。
答案4
在硬盘上安装大量程序是否会使其速度随着时间的推移而变慢,即使它没有在内存中运行?
如果您使用的是 HDD,而不是 SSD,那么碎片化是导致速度随时间变慢的最可能原因;任何已安装但未直接或间接加载到内存中的程序都不会导致任何其他形式的速度变慢。您可以使用自动运行来自 Microsoft Sysinternals 的工具。我觉得这里面很可能有一些东西……
除此之外你不能假设
1)查找注册表中的内容会花费更长的时间;2)我可能让一些我不知道的 rootkit 悄悄地窃取第一个分区上的资源。
无需实际测量或扫描即可确定。前者很少会成为问题,因为注册表是树状结构,因此除非注册表真的增长到异常大小,否则不会有任何问题。至于后者,只需使用您能找到的最好的 rootkit 和病毒扫描程序进行扫描即可。