我今天发现,我们可以使用powercfg -H -size 100%
命令行工具来设置hiberfil.sys的大小。忽略您将获得的辛苦空间,如果将其设置为,还会发生什么变化powercfg -H -size 50%
?是否将最大RAM使用量限制为50%?如果我们超过50%的RAM,系统不会休眠吗?
我今天发现,我们可以使用powercfg -H -size 100%
命令行工具来设置hiberfil.sys的大小。忽略您将获得的辛苦空间,如果将其设置为,还会发生什么变化powercfg -H -size 50%
?是否将最大RAM使用量限制为50%?如果我们超过50%的RAM,系统不会休眠吗?
Answers:
我已经找到有关休眠文件的Microsoft文档。它告诉我们的是,内存的内容在转储到休眠文件之前已进行了压缩,因此大多数情况下,将休眠文件的百分比设置为较小是有益的,因为会浪费更少的磁盘空间。
Windows通过将内存内容复制到磁盘来支持休眠。系统先压缩内存内容,然后再将其保留在磁盘上,这将所需的磁盘空间减少到小于系统上物理内存的总量。
该命令的正确语法似乎是:
PowerCfg.exe /HIBERNATE /SIZE 75
该文档还指出,如果休眠文件太小,则会发生“停止错误”,并且代码将建议您增加休眠文件大小所需的数量。
这样做不会限制系统可用的物理RAM数量。
由于压缩后,如果仅很少使用100%的物理内存和/或内存很可能包含在大多数情况下应该合理压缩的数据,那么减小文件大小就不会有问题。
从该文档中:
Windows在休眠文件(名为Hiberfil.sys)中为休眠保留了磁盘空间。对于Windows 7,休眠文件的默认大小等于系统上总物理内存的75%。例如,在具有2 GB RAM的计算机上,默认的休眠文件大小为1.5 GB。
在极少数极端的内存使用情况下,包括通过内存性能或测试实用程序进行内存验证,由于无法对内存内容进行足够的压缩以使其无法适应休眠文件的大小,因此休眠可能会失败。
我会尝试使用较低的数字,但就我个人而言,我不会低至50%。不过,这可能很好,而最糟糕的情况是休眠将失败,并且您必须正常重启并设置更大的大小。
powercfg
命令不再接受/SIZE
参数-至少不再记录在案,但如果指定该参数,则不会产生错误。
powercfg /?
清单将更长。如果您仔细查看这些内容,最终会发现它们(不是按字母顺序排列),此外,它还将接受一个位置-与链接的MS文档相匹配。-HIBERNATE, -H
-H <ON|OFF>
-H -Size <PercentSize>
-Size Specifies the desired hiberfile size in percentage of the total memory. The default size cannot be smaller than 50. This switch will also enable the hiberfile automatically.
Windows 10中的语法略有不同
PowerCfg /h[ibernate] off
将关闭休眠状态并删除文件C:\ hiberfil.sys
PowerCfg /h[ibernate] on
将重新打开该功能,并创建与可用内存大小相同的文件C:\ hiberfil.sys(一个16GiB RAM系统创建一个15.9GiB大小的hiberfil.sys)
PowerCfg /h[ibrnate] size 75
将创建一个hiberfil.sys文件或将其大小减小到大约75%(12GiB)
PowerCfg /h size 100
实际上与开启功能相同
大于100的大小值会导致出现参数错误消息,小于40的大小会将有效大小设置为40%。