为什么计算机从休眠状态恢复缓慢?


22

休眠状态应将RAM内容写出到磁盘,休眠状态恢复应将保存的内容填充回RAM。为什么从休眠中恢复很慢,例如,系统通常在相当长的时间内没有响应?


1
您应该尝试使用固态驱动器(SSD)的计算机,例如MacBook Pro。大多数时候几乎都是即时的。
斯图尔特

1
使用xbootmgr捕获休眠/恢复跟踪并分析缓慢的行为:msfn.org/board/index.php?showtopic=140247
magicandre1981 2013年

我在工作笔记本电脑上使用了休眠模式,但是为了加快运行速度,我先关闭了所有应用程序(使用一个名为closeall ntwind.com/software/utilities/close-all.html的小型实用程序)
Morgan T.

Answers:


19

主要原因是磁盘I / O。读写物理磁盘要比从RAM慢得多。当您的计算机从磁盘恢复(休眠)时,它还必须打开组件电源,这可能会导致速度降低。这在很大程度上取决于计算机。SSD从磁盘和RAM的恢复速度几乎相同。某些计算机允许您在再次完全填满滑枕之前四处移动鼠标,从而缩短响应时间。

注意:假设您有8GB的RAM和具有400MB / s吞吐量的SSD。仍然需要8 * 1024MB / 400MB / s = 20.48s。这与从RAM恢复的速度不同。

假设RAM吞吐量为15,000MB / s,则恢复时间为0.55秒。


5
Reading and writing to a physical disk is much slower than from RAM. 是的,但是读取比写入快,那么为什么读取HDD比写入要花这么长时间?
Synetech

1
@Synetech是吗?如果您只是将休眠状态从单击选项变为屏幕消隐(而不是停止驱动器活动),则OS可能会尽早将其消隐,因此它似乎并没有停止。如果您通过IO时间测量关机,则有几种可能。使用SDD时,我将检查页面文件是否碎片化,因为随机写入的SSD比随机读取的速度更快。否则,我会推测,由于重新启动某些硬件组件(而不是由于IO性能)而导致的延迟,因此dehibernate的速度较慢。
Dan Neely 2013年

@DanNeely,实际上我知道您的意思。我经常感到烦恼的是,当我单击“休眠”时,屏幕迅速关闭,但是驱动器本身仍在运行一段时间(通常是一两分钟或更多)。这真的很烦人,因为您不能随便拿起一台笔记本电脑并将其扔进书包中,因为驱动器仍在旋转并移动它会增加发生磁头碰撞的机会(待机对于快速关机而言更好)。但是,我也知道人类在说什么。有时,恢复需要花费很长时间(Windows恢复得很快,但是HDD LED保持亮了很长时间)。
Synetech 2013年

@Synetech另一个希望SSD便宜到可以通用的理由。
Dan Neely 2013年

3

RAM非常快,而硬盘恰好相反。想象一下,您必须从硬盘复制RAM内容(可能约为16 GB)。那是4张DVD。看到?


3

这是一个权衡。我们是否需要将休眠状态下的所有内容从磁盘一次全部拉回RAM,或者一次仅一次拉回休眠状态?

我们都知道,从旋转的磁盘读取扇区所需的时间几乎与将该扇区写入同一旋转的磁盘所需的时间相同-搜索+旋转时间。因此,我们可能希望将信息从RAM写入磁盘(在休眠状态下)与从磁盘读取相同的RAM(从休眠状态恢复)所需的时间大致相同。但是由于需求分页,这种情况不会发生。

如果操作系统一次投入所有操作,则从休眠状态恢复将需要数十秒,但在此之后,其作用将与您从未休眠过一样。

操作系统程序员通常选择按需分页。换句话说,根据需要,操作系统一次只从磁盘中提取一点点。这样做的好处是,从休眠状态恢复后,开始响应键盘和鼠标单击所需的时间要少得多。另一方面,当您在休眠后第一次使用某些东西时,操作系统终于可以加载它时,会有一个很小但明显的延迟。即使“第一次”使用某些东西在休眠后几分钟后,也会发生这种情况。因此,从休眠模式恢复后(即,看到的屏幕看上去与休眠之前的屏幕大致相同)之后,使用计算机可能会出现一段时间的呆滞。

正如Synetech所指出的那样,还涉及到一些人类心理:由于屏幕在休眠开始时立即关闭,因此好像它可以快速关闭。用户可以立即继续进行您想做的其他事情。但是从休眠状态恢复后,用户正在尝试执行某项操作,而小的延迟却很烦人,因为它们阻碍了用户正在尝试执行的操作。


2

我知道你的意思。从休眠状态恢复后,HDD LED确实确实闪烁了很长时间。

对于由于启动硬件(和驱动程序加速?)和碎片引起的延迟,已经给出了一些合理的解释(您会注意到,刚出厂的系统通常会休眠并快速恢复,而使用了一段时间的系统会这样做的速度要慢得多)。关于此行为,还有更多的解释。

休眠时,Windows将RAM刷新到驱动器。尽管读取RAM和写入磁盘的速度很高(即使在大的空驱动器上有碎片整理的休眠文件),写入数GB的数据仍需要花费相当长的时间(您会注意到,休眠和恢复具有少量RAM的系统的过程)速度很快)。屏幕快速关闭,但是驱动器(以及主板,风扇等)都保持运行一段时间,直到将RAM刷新到磁盘为止。(确保在完成并完全关闭驱动器之前,不要将带有HDD的笔记本电脑丢到身边)。

您可以进行一些实验测试,以测量从单击“ 休眠”到关闭系统电源所花费的时间,以及从看到“正在恢复Windows”屏幕到HDD LED停止闪烁所花费的时间。它们可能近似相等。(Windows确实尝试通过先写入然后将内核和填充内容读取到休眠文件中来使其看起来非常快速地从休眠中恢复,以便Windows可以立即备份并运行,然后继续在其余部分中加载背景,并根据需要将其恢复,直到您将其全部恢复为止。由于登录屏幕显示得非常快,因此您可以看到此行为的实际执行情况。)

为什么然后看来恢复需要更长的时间。有两种解释。

  1. 这是心理上的。正如Dan所指出的,由于在休眠状态时屏幕会立即关闭,因此在您看到整个恢复过程(打开屏幕和HDD LED闪烁)的同时,它似乎很快关闭了。

  2. 正在传呼。由于大多数人希望避免退出程序而使用休眠而不是关闭程序,因此他们可以在中断的地方继续工作,这意味着Windows恢复时,已经有很多程序在运行并且已经在消耗内存。因为自从上一次Windows的内存管理器在系统上检查以来已经过去了很长时间,所以它可能最终会进行大量的内存交换,因为从其角度来看,某些程序处于休眠状态一段时间,而另一些程序则处于休眠状态。变得活跃。当然,这种交换需要一段时间,并且会使驱动器损坏一段时间。

最终结果可能是硬件激活,分页,心理和碎片之间因素和相互作用的组合。

如果您愿意,可以通过执行一些简单的测试(例如在Windows休眠并恢复以查看是否所有这些情况时使用Process Monitor观察驱动器/文件的活动)来确定(至少在系统上)瓶颈是什么。抖动是由于访问hiberfil.sys或引起的pagefile.sys


1
我喜欢心理方法。普通旧硬盘驱动器上的休眠方式在UX方式下设计不佳,或者应该永远不存在。
smonff 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.