电脑的休眠和睡眠都是在ACPI标准下的S4和S3这两种电源状态下的一种表现形式,它们之间最大的区别就是数据存储的位置不同、能耗程度不一样以及断电之后能否继续工作的能力也不同。睡眠模式下所有的运行状态都会被实时地保存到内存中,并且只消耗很小的一点电量(大约为0.82瓦特),并且很快就可以被唤醒(一般情况下只需要1-2秒钟的时间),但是如果没有及时保存的话,在断电或者电池没电的情况下就会导致没有记录的数据丢失;而休眠模式则是先把内存里的所有信息复制到硬盘上的hiberfil.sys文件里再完全切断主板的所有供电,这样即使是在拔掉电源或者是整个晚上都没有外部电源供应的情况下第二天早上重启的时候也可以把之前的工作环境准确地恢复出来——机械硬盘需要花费大约25秒以上的时间来完成这个过程,而NVMe固态硬盘则只需要5-10秒钟左右。

第一部分 数据存储方式和安全范围
睡眠模式依靠的是内存(RAM)的易失性特点,在此状态下所有的程序都在运行之中,没有被保存起来的文件和临时缓存也都存在物理内存里,并且由主板以大约0.5-1.2伏左右的电压来保持它们的存在。因此该系统的脆弱性就体现在这里:如果供电时间过短的话就会造成数据无法挽回地丢失。而当系统进入到S4状态之前,则会先用LZ4算法把整个内存的内容进行压缩之后再完整的写入到C盘根目录下的hiberfil.sys文件中去,并且还会做一次校验对比工作;只有当这一切都完成之后才会发出ACPI命令使所有的电源供应都被切断掉,以此来建立一个真正意义上的断电保护墙。
第二部分是唤醒过程和实际测量的时间差
从睡眠中被唤醒的状态恢复为轻量级状态:跳过BIOS/UEFI自检、驱动重新加载以及内核初始化这三个步骤之后只需要做三件事就可以完成——给内存供电、同步系统时间、刷新显存帧缓存,在NVMe平台上测试的结果显示响应时间小于等于1.3秒,用户放开鼠标的那一刻起桌面就已经准备好了。但是要从休眠状态中被唤醒就需要经过完整的开机流程:上电-POST-加载管理系统-读取hiberfil.sys文件(文件越大读取的时间就越长)-逐页解压校验-重建内核上下文-恢复图形会话,机械硬盘平台平均耗时28秒左右,NVMe固态硬盘则稳定在7.5秒以内,在此过程中硬盘指示灯会一直高频闪烁。
第三种开启休眠模式的方法
方案一:使用命令提示符打开——右击“开始”菜单,在弹出的菜单中选择“Windows 终端(管理员)”,然后在弹出的窗口里输入命令 `powercfg /h on` 并按回车键,此时就会创建一个名为 hiberfil.sys 的文件;方案二:通过图形用户界面来开启——进入控制面板 -> 硬件和声音设置 -> 电源选项 -> 左侧栏中的“选择电源按钮的功能” -> 点击右侧的“更改当前不可用的设置” -> 勾选“休眠” -> 点击确定保存更改;方案三:利用组策略进行开启(适用于专业版以上版本的操作系统)——按下 Win 键 + R 打开运行对话框,在其中输入 gpedit.msc 并回车打开组策略编辑器,在导航树中依次找到 “计算机配置” -> “管理模板” -> “系统” -> “电源管理” -> “休眠按钮”,将其设置为“已启用”,之后可以使用 powercfg /a 来检查 S4 支持的状态是否已经生效。
第四部分 混合睡眠协同原理及应用建议
混合睡眠并不是一种完全独立的供电状态,在系统进入睡眠之前会有一个内存快照被写入到hiberfil.sys文件中的过程,之后仍然会采用S3的方式继续工作。也就是说,在正常使用的时候可以享受到秒级唤醒的效果,但是遇到突然断电的情况就会自动切换到休眠恢复路径上去了。该模式默认情况下适用于台式机和插电式的笔记本电脑,并且需要保证休眠功能已经打开并且hiberfil.sys文件存在才可以使用。对于短时间离开(不超过一小时)的情况可以选择使用睡眠模式,而长时间不使用或者外出办公时则应该设置为自动休眠。
因此两者不是简单的快慢问题,而是一个关于数据可靠性和反应速度的战略选择。



留言 · 0
还没有留言,说点什么吧
写留言