为什么在 Windows 8 上启动速度更快?

Mik*_*ail 28 boot windows-7 performance windows-8

一些人做了比较 Windows 8 和 Windows 7 的基准测试。许多功能没有改进,但始终如一地,启动时间更好。

为什么与 Windows 7 相比,Windows 8 的启动速度更快?这是服务问题,因此,我们可以调整 Windows 7 以具有相同的启动时间吗?

Elm*_*lmo 37

来自Building Windows 8博客:

现在这是 Windows 8 的主要区别:在 Windows 7 中,我们关闭用户会话,但不是关闭内核会话,而是将其休眠。与包含大量应用程序使用的内存页面的完整休眠相比,会话 0 休眠数据要小得多,写入磁盘所需的时间要少得多。如果您不熟悉休眠,我们有效地将系统状态和内存内容保存到磁盘上的文件 (hiberfil.sys) 中,然后在恢复时读回并将内容恢复到内存中。在引导中使用这种技术为我们提供了显着的引导时间优势,因为在大多数系统上读取休眠文件和重新初始化驱动程序的速度要快得多(在我们测试过的大多数系统上,速度要快 30-70%)。

速度更快,因为恢复休眠的系统会话比进行完整的系统初始化工作相对较少,但速度也更快,因为我们添加了新的多阶段恢复功能,该功能能够在多核系统中使用所有内核并行,拆分从休眠文件中读取和解压缩内容的工作。对于那些喜欢休眠的人来说,这也可以加快从休眠状态恢复的速度。

可能值得一提的是我们如何处理 hiberfile——如果你读了这篇文章并立即去做了一个 dir /s /ah hiberfile.sys 你会发现它是磁盘上一个非常大的文件。默认情况下,休眠文件的大小为物理 RAM 的 75%。该文件本质上是休眠数据的保留,当系统进入休眠状态时,这些数据将被写出。通常实际使用的空间要少得多,在我们快速启动使用的情况下,它通常是物理 RAM 的 10-15%,但会因驱动程序、服务和其他因素而异。系统还将 hiberfile 与磁盘上的其他文件略有不同,例如,Volume Snapshot 服务会忽略它(一个小的性能优势。) 您可以通过从提升的命令提示符运行 powercfg /hibernate off 来禁用休眠并回收此空间。但请注意,如果您这样做,它将完全禁用休眠,包括一些不错的功能,如快速启动和混合睡眠,它允许桌面系统同时进行睡眠和休眠,因此如果发生断电,您仍然可以恢复从休眠状态。您还可以运行 powercfg /hibernate /size 并指定一个介于 0 和 100 之间的值作为要为 hiberfile 保留的物理 RAM 的百分比——但要小心!指定太小的大小会导致休眠失败。一般来说,除非您在磁盘空间极其有限的系统上工作,否则我建议将其启用为默认值。它将完全禁用休眠,包括一些不错的功能,如快速启动和混合睡眠,它允许桌面系统同时进行睡眠和休眠,因此如果发生断电,您仍然可以从休眠状态恢复。您还可以运行 powercfg /hibernate /size 并指定一个介于 0 和 100 之间的值作为要为 hiberfile 保留的物理 RAM 的百分比——但要小心!指定太小的大小会导致休眠失败。一般来说,除非您在磁盘空间极其有限的系统上工作,否则我建议将其启用为默认值。它将完全禁用休眠,包括一些不错的功能,如快速启动和混合睡眠,它允许桌面系统同时进行睡眠和休眠,因此如果发生断电,您仍然可以从休眠状态恢复。您还可以运行 powercfg /hibernate /size 并指定一个介于 0 和 100 之间的值作为要为 hiberfile 保留的物理 RAM 的百分比——但要小心!指定太小的大小会导致休眠失败。一般来说,除非您在磁盘空间极其有限的系统上工作,否则我建议将其启用为默认值。这允许桌面系统同时进行睡眠和休眠,因此如果发生断电,您仍然可以从休眠状态恢复。您还可以运行 powercfg /hibernate /size 并指定一个介于 0 和 100 之间的值作为要为 hiberfile 保留的物理 RAM 的百分比——但要小心!指定太小的大小会导致休眠失败。一般来说,除非您在磁盘空间极其有限的系统上工作,否则我建议将其启用为默认值。这允许桌面系统同时进行睡眠和休眠,因此如果发生断电,您仍然可以从休眠状态恢复。您还可以运行 powercfg /hibernate /size 并指定一个介于 0 和 100 之间的值作为要为 hiberfile 保留的物理 RAM 的百分比——但要小心!指定太小的大小会导致休眠失败。一般来说,除非您在磁盘空间极其有限的系统上工作,否则我建议将其启用为默认值。

  • 与其复制和粘贴答案,不如总结文章然后引用它。引用文章很好,但不能大量引用。 (2认同)
  • 图像总结了它。 (2认同)

Tay*_*ibb 17

简短的回答,用我自己的话来说就是你的 PC 有会话,会话 0 是为内核或控制台会话保留的,会话 1 通常是登录用户会话。他们所做的是采用我们多年来在 Windows 中拥有的休眠功能,该功能使所有会话休眠,并且他们对其进行了修改,使其仅休眠会话 0(内核)。它是这样的:

  • 你点击关机
  • 您的 PC 关闭会话 1(您的用户会话)并将会话 0 写入硬盘驱动器上的 hiberfil.sys 文件。
  • 当您启动 PC 时,它会从 hiberfil.sys 文件中读取会话 0 的内容并将其分页回内存。然后它会为您初始化一个新会话。

回答您的第二个问题,由于这是对内核的修改,因此无法在 Windows 7 上完成。

出于兴趣,您可以在命令提示符下使用 shutdown.exe 执行完全(经典)关闭。

shutdown /s /t 0
Run Code Online (Sandbox Code Playgroud)

如果要进行混合关机,可以使用:

 shutdown /s /hybrid /t 0
Run Code Online (Sandbox Code Playgroud)