这个习惯来自磁盘小、内存小、需要手工管理资源的那十年。现在它基本不成立了:多数定期清理不仅没有收益,而清理这个动作本身还会带来新的问题。
先量化:垃圾到底能值多少空间
一台正常使用的机器上,可清理项的典型量级如下。个人使用差异很大,但量级不会变。
| 位置 | 典型大小 | 清了会怎样 |
|---|---|---|
| 用户临时目录 | 几百 MB 到几 GB | 被占用的删不掉,剩下的下次重建 |
| 浏览器缓存 | 一到三 GB | 网页首次打开变慢 |
| 回收站 | 几百 MB | 无法恢复误删文件 |
| Windows 更新残留 | 三到二十 GB | 这一项是真的可以清 |
| 休眠文件 | 内存的三分之一到全部 | 关掉就没法快速恢复现场 |
| 预读文件 | 几十 MB | 开机与启动变慢,而且它会自己重建 |
除了更新残留和休眠文件,其他各项都不值得你专门抽时间去处理。
为什么定期清理没有收益
三个原因,每一个都是机制层面的,不是概率问题。
缓存的存在就是为了减少重复工作。 清了等于把已经算过、下载过、编译过的东西丢掉,下次重新做。你看到的是占用减少了两个 GB,体验到的是打开常用网站多等了半秒。
真正占空间的东西从来不在垃圾里。 长期占空间的是聊天工具的记录与文件、游戏本体、下载目录、虚拟机镜像、手机备份。这些东西体积以几十 GB 计,而任何清理工具都不会删它们,因为删了会丢数据。
定时任务本身就是新的垃圾源。 一个需要定期运行的清理工具,自己就是一个常驻服务、一个开机启动项、一个弹窗入口。
什么情况下真的该动手
| 情况 | 该清什么 | 不该清什么 |
|---|---|---|
| C 盘剩余低于总容量五分之一 | 更新残留、休眠文件、大文件 | 浏览器缓存 |
| Windows 更新反复失败 | 更新下载缓存 | 任何注册表项 |
| 装了不想要的软件之后 | 它的卸载残留与数据目录 | 无关的临时目录 |
| 导出过大规模工程文件 | 输出目录与中间文件 | 缓存 |
| 系统明显变慢 | 先看启动项与磁盘占用 | 不要先清理 |
共同点:都有具体诱因。无诱因的定期清理可以取消。
一个开完就可以不管的配置
与其每周抽十分钟,不如花五分钟配一次自动机制。
开启存储感知
设置里进系统、存储、存储感知,打开后选周期(建议三十天),让它只处理临时文件与回收站。它比任何第三方清理工具都安全,因为它只碰系统知道可以删的位置。配完之后你不需要再管它,也不需要每周登录去看一眼。
把大文件目录移出系统盘
把下载目录、聊天工具的文件存储路径、虚拟机与开发工程目录指向其他分区。这一步的收益比所有清理加起来都大,因为垃圾不再长在系统盘上。
需要时看一眼谁占的
不要猜。用资源管理器逐层看大小,或者用磁盘分析工具扫一次系统盘,看前五个目录分别是什么。多数人的结论是:不需要清理,只需要删几个大文件或者把它们搬走。
查占用可以直接用命令
不想装任何工具的话,拿一行命令看用户目录里哪些子目录最大:
Get-ChildItem $env:USERPROFILE -Directory | ForEach-Object {
$size = (Get-ChildItem $_.FullName -Recurse -File -ErrorAction SilentlyContinue |
Measure-Object Length -Sum).Sum
[PSCustomObject]@{ Folder = $_.Name; GB = [math]::Round($size/1GB, 2) }
} | Sort-Object GB -Descending | Select-Object -First 10
输出直接告诉你下一个该处理的是哪个目录,而不是让你先去清理缓存。第一次跑可能要几十秒,因为要递归统计。
四件不要做的事
- 不要清注册表。它不影响启动速度,而删错了东西无法预测,还原点也不一定还在。
- 不要每天整理内存。空闲内存本来就该拿去做缓存,强制释放只是把数据重新读一遍。
- 不要删预读目录。它只有几十 MB,而且删了不会变快。
- 不要把清理工具设成开机自动运行。那等于把删文件的权限交给一个常驻进程。
最后一句
把每周清理换成三件事:配一次存储感知、把大目录移出系统盘、然后不再管它。以后只有在 C 盘真的不够、更新真的失败、或者刚卸完一个软件时才动手。清理是一个需要时才拿出来的工具,不是一个日程项。