从休眠状态恢复后,Windows 7 运行缓慢

war*_*ong 4 windows-7 hibernate

每次我休眠 Windows 7 然后稍后恢复时,整个系统似乎都很好一段时间,然后一切都会变慢,直到系统需要大约 10 秒才能加载之前立即加载的网页。

有什么办法可以阻止这种情况发生吗?

我已经尝试过 sfc /scannow,它没有任何区别。

我已经多次看到这个问题,但从未有过适合我的解决方案。

Syn*_*ech 5

每次我休眠 Windows 7 然后稍后恢复时,整个系统似乎都很好一段时间,然后一切都会变慢,直到系统需要大约 10 秒才能加载之前立即加载的网页。

查看系统上的 HDD LED。我敢打赌,从休眠状态恢复后的几分钟内,HDD LED 会猛烈闪烁(甚至稳定)。

这是正常的。当 Windows 从休眠状态恢复时,它不会将整个休眠文件(可能有几 GB)读入内存。相反,它加载对重新启动和运行至关重要的部分(内核、驱动程序的内存、服务、活动程序等),并在后台加载其余部分。这样,您可以立即重新开始工作,而无需等待一两分钟。

当然,这意味着系统将陷入困境,而 Windows 继续在后台加载系统的其余部分。当然,它会尽可能地做出响应,但这并不奇怪,这说起来容易做起来难。这是特别正确的,因为活动不断迫使它从后台加载旁跟踪以优先考虑其他事情,例如,如果您取消最小化程序,Windows 必须尝试停止加载它正在处理的任何内容并快速恢复该其他程序的内存,但它可能必须在侧跟踪之前完成当前操作。

我已经尝试过 sfc /scannow,它没有任何区别。

因为驱动没有问题。

有什么办法可以阻止这种情况发生吗?

除了获得更多内存和更快的驱动器(例如 SSD)之外,您可以做的最好的事情是在休眠前退出尽可能多的程序并释放尽可能多的内存。显然这在某种程度上违背了休眠的目的,但没有什么是免费的,如果你想在这方面表现,那么你就必须在那方面付出代价,反之亦然。

作为奖励,如果您在休眠之前减少运行程序的数量和使用的内存,那么您还可以获得 Windows 休眠更快的好处,因为它不必将尽可能多的内存保存到磁盘。

此外,Bob提到MSDN 文章解释了恢复慢(比休眠)慢的另一个原因:

引导加载程序增强还提供了类似的休眠恢复时间改进,主要是通过简化 Ntldr 用于读取休眠映像的 I/O 路径。休眠文件在写入时被压缩,为了效率,压缩算法与文件 I/O 重叠。但是,当从休眠状态恢复时,Ntldr 正在使用 BIOS 执行 I/O;因此,将磁盘 I/O 读取与解压缩重叠是不可行的。

为了优化 Windows XP 中的休眠过程,已实施多项改进。压缩算法已经过优化,可以压缩和解压缩大块 (64K) 的数据。此外,压缩与磁盘写入重叠。当当前数据块被传输到磁盘时,下一个数据块正在被压缩。将压缩与磁盘写入重叠使压缩时间几乎免费。此外,休眠文件是使用 IDE DMA 而不是 PIO 模式写入的。大多数现代 IDE 控制器和磁盘仅在 DMA 模式下才能达到最佳性能。

换句话说,休眠过程发生在 Windows 中,所有驱动程序都已加载并准备就绪,以便 Windows 可以以最大速度访问硬件(即驱动器)。但是,当您恢复时,Windows 并未加载,因此它使用的 BIOS 仅提供基本级别的服务(即使提供基本服务级别),毕竟BIOS 中的B代表Basic.

Windows 7 在 EFI 系统上的情况要好一些,但仍然基本相同。EFI 不可能为每个可能的硬件设备提供“驱动程序”,因此即使是 EFI 系统也无法提供最大性能的完全访问。


因此,从休眠状态恢复总是有点慢(至少让 Windows 启动并运行的部分;其余部分的后台加载会快一点)。事实上,您安装的内存越多,所需的时间就越长,因为必须从磁盘读取更多数据——休眠是拥有更多内存的唯一缺点之一。