在PC的世界里,微软还是这里的君主,这个总部坐落在美国北方西雅图的北境统治者感受到越来越强的寒意。Winter is coming,Linux的不死士兵们不断是从各个角落钻出来,撬动着微软王座的基石:Windows操作系统。微软不得不加紧修修补补,改善Windows的用户体验。毕竟他的臣民们如果都叛逃了,他的皇位也会不保。

普通用户感受最大的除了界面的变化之外,一个直观的感受是启动速度快了很多,这和微软在windows 8提出的快速启动(Fast Startup,注意和Android的Fast Boot区别)是分不开的。微软当时统计,启动速度提高了30%到70%:

(图片来源 MSDN)

正因为这样的突出表现,Windows8虽然被广泛诟病,快速启动却被保留了下来并在Windows10中继续发挥重要作用。

快速启动能够如此强大,和它背后的功臣:休眠功能(hibernate)是分不开的。

休眠hibernate

Hibernation一般指冬眠,冬眠的动物里最有名的就是熊,而微软在美国科技界的外号就是北极熊,无怪乎休眠被起名Hibernation。

我们专栏在前面一期介绍过睡眠(Sleep, 一起学习电脑如何睡眠S3)。我们来回忆一下:

ACPI提供了一种机制使系统在Working状态(G0)和Sleeping状态(G1)以及soft-off (G2)状态之间转换。

G1 Sleeping状态下系统耗电较少,没有程序在执行,如果有任何唤醒事件传入系统会使系统快速恢复至G0工作状态。Sleeping状态分为四种:

S0:正常工作状态,所有设备正常运转。

S1:Sleeping with Processor Context Maintained, CPU停止工作,不执行任何指令,但是CPU,芯片组以及DRAM内容没有遗失。此状态可以快速恢复到工作状态。

S2:比S1的睡眠状态更深更省电,CPU停止工作,但是CPU和cache的内容已丢失。DRAM仍处于带电状态。

S3:又叫Suspend to RAM,功耗更低,内存信息得以保持,CPU, Cache, Chipset的内容均丢失。DRAM仍处于带电状态。

S4:又叫Suspend to Disk,hibernate。功耗最低,唤醒需要的时间最长,所有设备都不再工作。Memory的资料被保存在Disk中。当系统收到唤醒信号后,首先从Disk中恢复memory。

这里的休眠就是指S4 (hibernate)。作为一个UEFI专栏,这里要指出UEFI固件对于S4不需要做任何特殊处理,memory被保存到disk,S4回来后从Disk恢复的动作全部由操作系统完成,UEFI可以将其作为一般启动即可。这和S3有很大不同。

快速启动Fast Startup

休眠在windows操作系统中存在已经有很长时间了,微软只是在win8开始为它找到了新的使用场景。微软的工程师一直致力提高启动速度,因为他们发现57%的PC用户和45%的笔记本用户还是每天关闭电脑(2011年数据,见参考文献[1]):

(图片来源:MSDN)

而Hibernate却使用率不高。微软的工程师发现: Windows启动到登陆界面要进行的步骤每次完全一样,只有在登陆后运行程序不同。他们产生了一个大胆的想法,为什么不把登陆完成之前的内容借助Hibernate存储下来,而每次启动都从这个点再继续呢?想法不错,经过实验,他们找到了合适的存储点,结果启动速度大为提高。我们通过下图可以形象的看出两者的差别:

(图片来源:MSDN)

Cold boot是指原本的冷启动,下面是快速启动。

干得好,程序员们!

结论

原理说完了,下面说一下它的相关问题:

1. 怎么开启Fast Startup

在大多数情况下,快速启动都是缺省开启的。如果你的没有开启,打开快速启动也很简单,照着下面图片做就好了:

如果你在电源管理界面里面没有看到开启快速启动的选项框,如下:

那可能是你的休眠模式没有打开。用管理员模式开启命令行窗口,输入powercfg /hibernate on

2. 怎么启动个干净的系统

有些用户担忧,每次都是休眠启动,如果系统出问题,我想要个一干二净的登陆环境怎么办? 办法由两个:

A. 关机不要直接用关机选项,而是开启命令行窗口,输入 shutdown /s /full / t 0。

B. 不要关机,而是选择重启。重启不会用快速启动。

3. 如何缩小休眠文件 hiberfil.sys

休眠文件hiberfil.sys随着你的内存大小而设定,通常是你安装内存的75%大小。土豪用户引以为傲的大内存带来了大休眠文件,对寸土寸金的SSD来说就肉痛了。如果你仅仅想用快速启动而对休眠不感兴趣的话,用下面这个命令

powercfg /h /type reduced

可以节省大约一半的空间。

请确保在管理员权限下。

4. 快速启动的缺点

对双启动或者多启动来说,Windows会锁住启动分区,你有可能不能顺利进入其他操作系统,尤其Linux系统。如果你通过手动进入的话,对Windows分区进行操作可能会导致再次返回该Windows时发生蓝屏。建议Dual OS的用户慎用快速启动。

其他

这里乱入一个知识点。微软不但把休眠用到了开机上,还创造出了一个叫做混合睡眠的概念。这是因为微软发现关闭电脑,尤其是笔记本的人越来越少。经过平板浪潮的洗礼,大部分人开始习惯把笔记本一合就完事了。而合上笔记本的动作在很多情况下(可以在Windows里面设置)都是进入睡眠S3。而S3有个问题是它还在消耗着电力,尽管比较少。这就带来一个严重的问题,如果在S3情况下电力消耗殆尽,那么未存储的东西不就丢失了吗?过去这种情况都由UEFI固件偷偷处理,它会在电力下降到一个阈值后偷偷开机,帮你把S3转换到S4。

出问题的是很多小品牌的笔记本厂商,他们固件基础薄弱,这个功能问题很多。而随着不关机人群的扩展,出问题的机会越来越大。于是微软发明了个混合睡眠模式,即:

1. 合上盖子的时候进入混合睡眠模式,即虽然要进入S3,但也把S4需要的内容存储下来了。

2. 如果在电源消耗完之前从S3回来,例如开启盖子等。就按照S3启动路径。

3. 如果电源消耗结束后再回来,就按照S4的路径启动。

这样相当于为S3加上了S4的双保险,保证文件不会丢失。

你可以通过powercfg看一下你开启混合启动了吗:

参考文献:

[1]. https://blogs.msdn.microsoft.com/b8/2011/09/08/delivering-fast-boot-times-in-windows-8/

windows睡眠(休眠)唤醒助手_Windows快速启动背后的功臣:休眠相关推荐

  1. linux休眠唤醒后qt无法启动,Ubuntu 18.04 休眠后无法唤醒的解决办法

    解决办法:安装laptop-mode-tools工具包. 1.检查是否安装了grep laptop-mode-tools 工具包 $ dpkg -l | grep laptop-mode-tools ...

  2. 如何在Windows中将应用程序添加到快速启动菜单

    The Quick Launch bar, which was removed in Windows 7, can be added back to the Taskbar in Windows 7, ...

  3. windows睡眠(休眠)唤醒助手_一劳永逸解决WIN10所有睡眠问题

    1.初级阶段,解决因硬件的唤醒事件 powercfg -lastwake 查看上次唤醒电脑的设备 哪些硬件能唤醒电脑? powercfg /devicequery wake_armed 列出现在可以唤 ...

  4. 记一次windows蓝屏的解决方法——快速启动惹的祸

    现象 公司电脑,Windows10 系统,我一般周一到周四不关机只休眠,一切正常,周五下班关机,可是到下周一过来开机必蓝屏(100%蓝屏),强制关机重启后又一切正常了. 后面反复测试了几次,发现只要是 ...

  5. 硬件nat关闭还是开启_「Windows」到底要不要开启“快速启动”,有没有副作用?...

    前言: 我记得自win8以来,在电源管理里面就有个快速启动选项,开机4-6秒不是梦啊,那么问题来了,装个win10系统平均会占用20-30G的内存,如果不是固态硬盘,为何仅仅几秒钟就读取完系统后就开机 ...

  6. windows睡眠(休眠)唤醒助手_解决电脑在睡眠/休眠状态下无故被唤醒的情况

    电脑总是无故被唤醒?是谁动了我的电脑?大家难免遇到过睡眠/休眠不正常,无故被唤醒的情况,经常性的话,无疑会增加耗电量进而影响电脑的续航时间,怎么让电脑恢复持久呢! 命令提示符 想要查看究竟是哪些硬件设 ...

  7. windows安全警报怎么关闭_Windows 开机启动画面,声音等设置

    小伙伴们上期我们介绍了Windows 怎么设置炫酷的桌面,使用的是雨滴插件. 详情请看: Windows炫酷桌面[雨滴]钢铁侠 开机动画 那么本期我们讲啥技术呢,其实也是比较老的技术了.早在很多年前就 ...

  8. Windows 10关闭快速启动的方法

    在Windows 8及其更高版本的Windows系统中,快速启动功能会被默认开启,开机时间也能大大缩短.但是在某些情况下,快速启动功能的开启会带来部分系统问题,从而无法正常使用电脑.那么我们该如何关闭 ...

  9. 如何在Windows 7中添加快速启动项

    据国外媒体报道,毫无疑问的,在微软的最新一代客户端操作系统Windows 7中,Windows的图形用户界面是微软为用户带来的巨大创新. 而在Windows 7图形用户界面的变革中,变化最大的就是任务 ...

最新文章

  1. 三十六亿的《哪吒》历时五年,如何用AI解决动画创作难题?
  2. mysql5.7 忘记root密码后,如何找回密码?
  3. 2018-10-04-Python全栈开发-day61-DJANGO-MODELS操作补充
  4. 如何管理企业刺头人物!
  5. 如何理解VMware内存资源管理
  6. C语言calloc()函数:分配内存空间并初始化
  7. php 随机两位小数数_使用8086微处理器找出两个8位N数数组
  8. 卷影副本--给你后悔的机会,文件误删除,误更改,能够找到以前的版本。
  9. 计算机应用技术高数挂科,这7个专业难度太大,挂科率很高,只有学神才敢报考...
  10. jQuery:ajax调用成功后返回数据
  11. 调试裕泰微yt8521s的phy芯片流程记录
  12. 监控系统整合告警平台实现邮件、短信、微信、电话语音和app等多方式报警
  13. DGIOT国内首家轻量级物联网开源平台——真实电表接入实战教程
  14. 北京-京医通-小孩-人脸识别
  15. 深度学习细颗粒图像分析综述
  16. php搞笑证件,各类搞笑证件生成器,趣味证件制作软件,一次下载免费使用
  17. 判断字符串是中文或者英文
  18. java核心技术卷一_java核心技术卷一
  19. 如何关闭ie 增强的安全配置
  20. java ext.dirs_关于-Djava.ext.dirs使用问题

热门文章

  1. mysql中和compute同等作用的_MYSQL中Group By的原理和用法
  2. c如何调用java_JNI学习------C语言调用Java (转)
  3. mac 二进制安装mysql_在mac下安装mysql二进制分发版的方法(不是dmg的)
  4. vs2017c#开源项目_2017年值得关注的开源项目
  5. 2017年闰秒linux_2017年Linux专业人员的4个热门技能
  6. 谈论源码_当我们谈论软件“替代品”时,这是什么意思?
  7. String.raw()方法
  8. java string范围_字符串索引超出范围? (Java,子字符串循环...
  9. 一.论文编写之工具记录
  10. 视觉SLAM笔记(31) 特征提取和匹配