大内存,随时待命! 大内存系统睡眠(待机)/休眠研究
DIY研究所
测试平台
处理器:酷睿i7 2600K
Phenom Ⅱ X6 1090T
主板:映泰TZ68A+
映泰TA880GU3+
内存:宇瞻DDR3 1600 2GB×2
硬盘:希捷7200.12 1TB
显示器:DELL U2410
操作系统:Windows7 64bit Ultimate
从Windows 98/Windows 2000开始,关机就不是唯一的选择了,很多时候我们完全可以用睡眠(待机)/休眠来替代关机。不过在4GB内存的价格大幅跳水之后,大多数用户的内存容量都超过了4GB,这也给睡眠(待机)/休眠的兼容性带来一些麻烦,今天疯狂博士就来解决这些问题。
Windows7待机模式
由于Windows7拥有的待机模式更加先进,因此对于安装了Windows7系统的电脑来说,在大多数情况下都可以用睡眠/休眠来替代关机。在Windows Vista之前,系统将电脑的状态分为待机和休眠,由于休眠本身也是待机的一种状态,因此在Windows Vista之后系统的待机状态变成了睡眠和休眠。
虽然Windows7的待机模式也同样分为睡眠和休眠两种,但实际上睡眠模式还分为S1和S3两种。S1模式是CPU暂停工作,系统处于低电量供应状态,CPU风扇低速转动,此时动一动鼠标或按下键盘任意键即可唤醒计算机并恢复到待机前的状态;S3模式是将当前系统状态保存到内存中,然后进入“关机”状态,除了极少的电量维持内存数据不丢失以外,其他的设备全部断电,CPU风扇停转,只有按电源按钮才能唤醒,唤醒后能够快速恢复到待机前的状态。
休眠模式就是所谓的S4模式,S4模式是将Windows内存中的数据写入硬盘,然后所有设备断电,只有按电源按钮才能唤醒,唤醒时系统将硬盘中保存的内存数据写入内存,系统恢复到关机前的状态。
小贴士 关机与待机的区别
关机是关闭所有程序、切断计算机电源,下次开机的时候系统重新启动;而待机有多种状态,其实质都是保存现有系统状态到内存或硬盘中,以便可以将系统迅速唤醒,而且保持系统状态和待机前相同。
待机模式切换
对于Windows7来说,待机模式的切换并不复杂,通常BIOS中默认打开的是S1模式,系统默认打开S1模式和S4模式,在开始菜单的关机选项中可以选择是待机还是休眠。如果要切换到S3模式则需要到BIOS中进行设置。要切换到S3模式非常简单,只要进入BIOS的“ACPI”设置中,将“ACPI Sleep State”由S1切换到S3即可。不过对于Windows7来说,一旦在BIOS中切换到S3模式,系统会默认打开混合睡眠,并自动关闭S4模式休眠的可选项。混合睡眠是系统在切换到S3睡眠模式的过程中将会同时激活S4模式,也就是说在将系统状态写入内存并保存的时候,系统会同时将内存数据写入硬盘,这就意味着在默认状态的S3模式下是否切断主机电源并不会影响系统恢复到睡眠前的状态。




常规待机模式测试

从测试来看,无论Intel平台还是AMD平台,进入S1睡眠模式的时间都是最短的,从S1睡眠模式唤醒的时间也是最短的。不过在这种模式下系统中的各部件并没有断电,大部分部件只是暂停工作,能够迅速被唤醒,因此CPU风扇依然在低转速旋转,相对应的功耗也是各状态下最高的。
由于默认状态下的S3模式是打开混合睡眠的,因此我们可以看到各平台进入S3睡眠模式的时间和进入S4休眠模式的时间差异并不大。只不过S3睡眠模式下需要微量的电能来维持内存中的数据,所以进入S3睡眠模式的功耗比进入S4休眠模式的功耗高1W。
虽然理论上来说,系统进入S4休眠模式和关机是同一功耗状态,应该是不耗电的,但是电源本身在接通市电的情况下会有一定的电能消耗,因此我们看到即便在S4休眠模式下功耗计依然有1W的读数。
由于默认状态下的S3睡眠模式是打开了混合睡眠的,因此本博士在系统进入S3模式后拔掉了计算机的电源,过了一段时间后重新接通市电开机,这时系统依然能够恢复到初始状态,未做保存的文件依然没有丢失任何内容,游戏也可以继续,只是唤醒时间延长到了23.7s,基本上和从S4休眠模式下恢复耗时相当。
32位系统待机模式测试

由于标准版的32位Windows7并不能完全支持4GB及以上的大内存,因此大内存就会带来一些问题。尤其是在S3睡眠模式下断电后重新开机和从休眠中恢复时,由于系统并不能完全识别4GB内存,导致写入硬盘休眠文件中的内存只有3GB左右,而在从休眠状态恢复时就会出现1GB左右的内存无法从硬盘的休眠文件中读到,导致系统卡死。
不过Windows7 SP1已经部分修复了这个Bug,在主板和CPU都支持Physical Address Extension(PAE物理地址扩展)的计算机中安装32位的Windows7并打好SP1补丁后,尽管硬盘上的休眠文件依然小于4GB,但已经能够正常从S4休眠状态唤醒,而不会再出现“也许它休眠,将不再醒来”的情况。
对于那些无法正常从S4休眠或S3睡眠断电后重新开机唤醒的32位Windows7系统,我们可以通过修改Windows7系统文件实现大内存支持的方式来解决(修改方法见本报今年第39期E11版)。修改支持4GB以上内存后,硬盘中的休眠文件也会随之增大,就能够正常从S4休眠模式中唤醒了。
如果你不愿意修改系统文件支持大内存,也可以尝试关闭系统的休眠功能,方法是点击开始菜单→所有程序→附件→命令提示符,点击右键选择“以管理员身份运行”,在命令提示符窗口中输入“powercfg -h off”。
S3模式延伸测试

由于S3睡眠模式的默认设置是打开混合睡眠,而手动关闭混合睡眠后,S4休眠模式的选项才会出现在开始菜单的关机选项中。本博士测试了打开和关闭混合睡眠的三种待机状态,从测试来看默认的S3睡眠进入待机模式的时间明显短于S4休眠模式,而唤醒时间则差不多,关闭混合睡眠的S3睡眠模式虽然进入待机模式和唤醒都快得多,但一旦断电系统将无法恢复到进入待机模式前的状态。
疯狂博士 Windows7关机首选S3睡眠模式
虽然现在Windows7的开关机速度比以前快多了,但是对于不想在开关机过程中浪费时间的用户来说,选择合理的待机模式显然是更适合的。从各待机模式的进入时间、唤醒时间、待机功耗来看,默认的S3睡眠模式占据绝对的优势,不仅待机功耗低、唤醒时间短,而且即使断电也能恢复到待机前的状态。因此本博士推荐大家将S3睡眠模式作为首选的“关机”模式,如果你没有切断电源的习惯,那么下一次开机可以迅速唤醒,如果你习惯于关机后切断电源,下次开机的时间也比Windows7正常启动略短一些,而且“关机”前的状态不会丢失,你甚至不必在每次关机前保存并关闭每一个文件,并且可以在下一次开机后立即进入工作状态,变相地提升了工作效率,节省了时间,而且几乎可以不增加功耗。
由于Windows7的内存管理方式也比之前的系统高效了许多,我们也不用每次为了清理内存而重新启动计算机,这样一来,关机就不再是每天必需的选择,S3睡眠模式完全可以达到相同的效果,而且优势更大。即便是对于短暂离开计算机的用户来说,选择S3睡眠模式也比选择S1睡眠模式更省电,而唤醒时间相差也不大。