为什么 Windows 8 的启动时间更快?

为什么 Windows 8 的启动时间更快?

一些人对 Windows 8 和 Windows 7 进行了基准测试。许多功能并未得到改进,但启动时间始终更短。

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

答案1

来自构建 Windows 8博客:

现在,Windows 8 的主要区别在于:与 Windows 7 一样,我们关闭用户会话,但不是关闭内核会话,而是将其休眠。与包括大量应用程序正在使用的内存页面的完整休眠相比,会话 0 休眠数据要小得多,写入磁盘所需的时间要少得多。如果您不熟悉休眠,我们实际上是将系统状态和内存内容保存到磁盘上的文件 (hiberfil.sys),然后在恢复时将其读回并将内容恢复回内存。在启动时使用此技术可以显著缩短启动时间,因为在大多数系统上,读取休眠文件和重新初始化驱动程序的速度要快得多(在我们测试过的大多数系统上,速度快 30-70%)。

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

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

答案2

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

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

回答你的第二个问题,因为这是对内核的修改,所以在 Windows 7 上无法完成。

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

shutdown /s /t 0

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

 shutdown /s /hybrid /t 0

相关内容