项目组有一Windows工作站, 由于需要使用Kinect最新的SDK,装了 Windows 8.1, 内存32G,配了一块250G的固态硬盘,分成了C盘。最近重装过系统,稍微安装了点软件,发现竟然只剩50G左右空间可用。果断开始查找原因。
1. 查看索引服务
Windows的索引简直就是一shit,很慢,而且非常占空间,曾经受过毒害,不过这次发现索引已经关掉,不是这个问题。
(题外话,推荐一款叫everything的文件搜索工具,只在windows下管用,类似Linux的locate,搜索文件是实时的,秒速搜索,完爆自带的搜索。 windows自身如果在全盘搜一个文件,十有八九直接宕机,但是everything毫无压力。everything后台会建索引,但内存和磁盘占用都极小。)
2. 查看各个文件夹大小
笔者自己不常用Windows,就用笨办法,把几个文件夹手动看了下大小,都很正常,加一起还有100多G空间没找到。
(“Windows”这个文件夹有20多G,对此深表无语)
3. 查看隐藏文件
也没什么异常
4. 查看 “受系统保护的操作系统文件”
发现在C盘下有一个papefile.sys文件有将近80G,一个hiberfil.sys文件差不多30G。
papefile.sys是虚拟内存文件。默认是物理内存的2倍多,而且竟然不管有没有用,直接硬性分配了。由于很少跑对内存需求巨大的程序,直接在控制面板将虚拟内存调小,设置为10G。省出70G。
hiberfil.sys是休眠时用的,所以几乎和物理内存一样大。对于Windows8.1这样一个几乎用不到休眠的系统,纯属多余。直接关闭休眠。在网上找到方法:
以管理员身份打开cmd,输入
powercfg -h off
这时,hiberfil.sys直接消失了,节省30G。
5.结论
虚拟内存(papefile.sys)和休眠(hiberfil.sys)默认大小都是和机器的物理内存相关的。
物理内存越大,这两个文件越大。对于大部分用户来说,增加了物理内存,对虚拟内存的依赖变小,但默认的虚拟内存反而会增大,非常反人类。
对于工作站来说,这个空间非常可怕。可以结合实际情况进行修改。尤其是C盘是固态硬盘的话,更要抢救宝贵空间。
对于个人电脑,如果内存一般,还是不要折腾了,也释放不了多少空间。