工具
指南
本页内容

2026年8月18日

Windows 垃圾清理指南:从 Win7 到 Win11,各版本安全腾出磁盘空间的完整方案

明明没装什么新软件,C 盘却一年比一年满——这不是错觉,是 Windows 的”生长方式”决定的。每个月度累积更新都要先把几个 GB 的载荷落地暂存;每次大版本升级会把整套旧系统原封不动留在 C:\Windows.old;每一次崩溃写一个转储文件;每一个 UWP 应用的更新都把旧包留在原地;WinSxS 文件夹随着组件版本更替悄悄膨胀。这还没算开发者特有的开销:npm 动辄装下半个互联网、Docker 拉下来一层又一层的镜像、Gradle 把见过的依赖全部缓存。于是第一年还空旷的 256 GB 硬盘,第二年容量条就红了。

红条不只是难看。Windows 需要空闲空间才能正常运转:更新要在里面暂存和交换,页面文件要向里面扩张,系统还原点、SSD 的 TRIM 调度,全都仰仗一点余量。经验值是 SSD 至少保留 10–15% 空闲;低于这条线,更新失败会以各种莫名其妙的方式出现。

好消息是:占着磁盘的东西里,有相当大一部分本来就是设计成”用完即弃”的——缓存、暂存载荷、被新版本取代的旧组件。只要走 Windows 官方提供的机制去清理,这些操作都是安全的;危险只发生在一个场景里——你绕开这些机制,带着迷之自信打开资源管理器手动删文件。这篇文章按 Windows 版本展开:从 11 一路讲到 7,再讲各版本通用的命令行方案、通用教程从不提的开发者缓存,最后是一份”绝对不要删”的清单。

Windows 11 与 Windows 10:存储感知优先#

Windows 10(1709 及之后)和 Windows 11 共用同一套存储管理引擎,“设置”应用是它的主入口。打开设置 → 系统 → 存储,Windows 会先做一次分类扫描,告诉你字节都去哪了——应用、临时文件、文档、“系统和保留空间”。删任何东西之前,值得先花一分钟读这个页面:老版本 Windows 里靠猜的活儿,现在变成了看报表。

两个版本的差异基本是皮面上的。Windows 11 把存储感知收进系统 → 存储 → 存储感知,措辞更清楚、每个策略有独立开关,还多了清理建议页面(汇总大文件、长期未用的应用、同步残留)。Windows 10 后期版本(21H2)底层机制一应俱全——学会其中一个,另一个自然就会。

存储感知(Storage Sense):配一次,管很久#

存储感知是 Windows 里最接近”垃圾回收器”的东西。开启后,它会在系统空闲时段自动运行(也可以点”立即运行存储感知”手动触发),清理这些内容:

  • 回收站里超过你设定时限的文件(1/14/30/60 天,或永不清)。
  • 下载文件夹里超过另一个时限的文件(默认关闭——这个默认值是有意为之,下文展开)。
  • 应用程序产生的临时文件。
  • 传递优化缓存文件(Windows 10 1803+)。
  • 较旧的 Windows 更新构件,以及——在你明确勾选时——以前的 Windows 安装。

最值得想清楚的一项设置是”下载”。每个开发者的 Downloads 文件夹都是一半档案馆、一半垃圾场:可能还要重跑的安装包、数据集、同事三个月前发来的那个 zip。存储感知识别不动下载文件夹,这个默认值对多数人是对的;如果你开了 30 天规则,就要配套养成习惯——一个月内把还在意的文件挪走。否则某天丢了个文件,你得花一个小时才想起来”哦,是我自己自动化掉的”。

一套说得过去的基线配置:回收站 30 天、下载关闭、临时文件开启。日常的容量漂移这就够了,而且永远不会”惊喜”到你。

临时文件:一键清理的正确打开方式#

设置 → 系统 → 存储 → 临时文件打开的是一张勾选清单,逐项列出实际可回收的内容,勾选时实时显示总量:安装日志文件、临时文件、缩略图、传递优化文件、回收站、下载(这里也会出现,警惕程度同上)、Windows 升级日志,以及大版本更新之后会出现的”以前的 Windows 安装”。

这张清单背后有两条原则。第一,凡是 Windows 列在这里的项目,都是它原则上认为可安全删除的——但”安全”是有上下文的:缩略图下次打开图片文件夹时会重新生成,代价是几秒钟;DirectX 着色器缓存下次启动游戏时重新编译,代价是开头几分钟的卡顿;而”以前的 Windows 安装”删了就是删了,没有回头路。第二,清单只预勾”绝对安全”的项——你一个都不改、直接删除,机器不会坏。

Windows.old:一份终会过期的回滚保险#

大版本更新(每年一次的”版本”跃迁,不是月度累积更新)之后,Windows 并不删除旧系统,而是把整个旧的 C:\Windows 挪进 C:\Windows.old,旁边还有 C:\$WINDOWS.~BT(新构建的暂存区)和 C:\$Windows.~WS(安装程序的工作文件)。在默认约十天的窗口期内,你可以通过设置 → Windows 更新 → 更新历史记录 → 卸载更新(Win10 在”恢复 → 回退”)回滚。这是真正的保险:如果更新弄坏了某个驱动或某个你在乎的应用,回滚会在二十分钟左右把整个旧系统——连同文件和设置——原样还给你。

窗口期一过,Windows 会通过存储感知或计划维护自动删除 Windows.old——理论上会。实际经验里,“理论上”可能意味着好几周,期间 20–35 GB 就那么闲着。两个安全回收姿势:

  1. 临时文件清单 → 勾选”以前的 Windows 安装” → 删除文件。干净、官方、立刻生效。
  2. 存储感知 → 立即运行,并把”以前的 Windows 安装”纳入其清理范围。

不该做的事是在资源管理器里直接删 C:\Windows.old。这个文件夹的权限属于 TrustedInstaller,手动删除会失败一半,留下一个连管理员都头疼的僵尸目录。走官方路径就好——它存在的意义就是让你不必去跟权限搏斗。

决策框架很简单:更新刚落地、这台机器又是生产环境主力,就留着十天窗口;更新后你验证过一切依赖都正常,就立刻回收。对开发者来说,“一切依赖”要包括 Docker Desktop、WSL2、VPN 客户端、依赖驱动的工具链——这些恰恰是大版本更新最容易弄坏的软件类别。

传递优化(Delivery Optimization):P2P 更新缓存#

Windows 更新之所以又快又省流量,是因为所有 PC 在互相帮忙:你的机器既从微软 CDN 下载更新的分片,也从局域网或互联网上的其他 PC 下载,同时向外提供自己已有的分片。已下载分片的缓存在 C:\Windows\SoftwareDistribution\DeliveryOptimization,占几个 GB 很常见。

这是最纯粹的缓存——删掉毫无代价,最多重新下载。设置 → 系统 → 存储 → 临时文件 → 传递优化文件即可清除,存储感知也会自动处理。设置里还能限制缓存上限、关掉”互联网对等”——如果你按流量付费,这个开关值得一看;至于磁盘空间,清缓存这一项才是重点。

回收站与下载:两条自动化策略#

想让这两个文件夹不变成麻烦,靠两个习惯:

  • 回收站:交给存储感知,30 天一清。一条删了 30 天都没想起来的文件,经验上讲就是你不需要的文件。另一个冷知识:回收站对每个盘有独立配额(右键回收站 → 属性),默认是盘容量的 5–10%——在 1 TB 的盘上意味着最多 100 GB 的”已删除”文件安静地占着地方,把它改成一个固定大小是完全正当的调节手段。
  • 下载:养成每月分拣的习惯——还会用到的东西挪进项目目录或正经的归档位置,用不到的删掉。存储感知能自动化的只有”删”那一半,“分拣”是人的活儿,每月十五分钟,比事后补救便宜。

Windows 8 / 8.1:裹着触摸外衣的磁盘清理#

Windows 8 处在两个时代的夹缝里:它有了现代的存储空间管理界面和触摸优先的外壳,但垃圾清理依然是经典工具”磁盘清理”穿了件 Metro 的衣服。触摸优化路径:调出超级按钮栏(从右侧滑入,或 Win+C),设置 → 更改电脑设置 → 电脑和设备 → 磁盘空间,这里能看到”查看应用大小”的视图和清理入口——算是 Windows 10 存储页面的前身,只是没有自动化。

真正的清理工作发生在 cleanmgr 里,它在 8/8.1 上功能完整,而且——很重要——认识新时代的垃圾:

cleanmgr /d C:

这会打开经典对话框。8/8.1 上值得记住的流程是:

  1. 运行 cleanmgr、选择 C 盘,先看到的是普通用户视图——Internet 临时文件、缩略图、回收站。
  2. 点击清理系统文件——这个按钮会以管理员权限重新启动工具,解锁重量级项目:Windows 更新清理(被取代的旧更新——一台用了几年的 8.1 上动辄几个 GB)、以前的 Windows 安装、Service Pack 文件、被新驱动取代的旧驱动包。

Windows 8.1 还给自动维护(控制面板 → 系统和安全 → 安全和维护 → 维护)加了一个档位,会在空闲时段连带运行磁盘清理的安全子集。幅度不大,但它解释了为什么一台没人管的 8.1 机器增长速度没有 Win7 机器那么夸张。

这个时代特有的提醒:8/8.1 的支持已于 2023 年 1 月结束,还在服役的机器多半跑着不再受支持的硬件或遗留软件。给这样的机器清垃圾没问题;但更该谈的是迁移——一个收不到安全补丁的系统,积累风险的速度比积累临时文件快得多。

Windows 7:经典系统,存量巨大#

Windows 7 的生命周期在 2020 年 1 月就结束了,但今天仍有海量 7 在跑——在工厂、实验室、仪器后面,以及在”能开机就别动它”的办公室里。它们的硬盘小(常见 120–500 GB 机械盘)、清理工具旧、而且积累了整整十年以上的垃圾。误删的代价也更高,因为恢复介质和懂行的人都稀缺。

磁盘清理工具,深入讲#

在 Windows 7 上,cleanmgr 就是重心。开始菜单 → 输入”磁盘清理” → 选 C 盘。初始视图只显示用户级项目,看起来毫无用处——撑死几百 MB。每个 Win7 用户都该知道的诀窍是对话框里的清理系统文件按钮。它会以管理员权限重新运行工具,露出真正值钱的项目:

  • Windows 更新清理——被更新的更新所取代的旧更新。一台从 2011 年更新至今的机器上,这一项动辄 3–10 GB。整体删除是安全的:之后你无法逐个卸载这些被取代的更新,但你本来也不需要。注意:这个类别是 Win7 SP1 通过更新引入的,打过全补丁的 SP1 机器才有。
  • Service Pack 备份文件——SP1 自身的回滚数据。回收它意味着 SP1 永远无法卸载——在 2026 年,这无所谓。
  • 以前的 Windows 安装 / 临时 Windows 安装文件——就地升级后出现,语义与现代 Windows 相同。
  • 设备驱动程序包——Windows 留着用于回滚的旧版驱动。清掉之后,驱动就不能回滚到当前版本之前了。
  • 缩略图、临时文件、回收站——常规项目,一如既往。

磁盘清理的估算很实诚但很慢——它是真的在遍历目录。机械盘上跑一两分钟很正常,不是卡死。

WinSxS:吓坏所有人的文件夹#

C:\Windows\WinSxS(Windows Side-by-Side,并行组件存储)的设计其实相当优雅:为了终结 DLL 地狱——每个应用自带一份可能各有毛病的 msvcrt.dll——Windows 把每个系统组件的每个版本集中存进一个仓库,用硬链接布置到位;更新时新版本与旧版本并存,回滚和修复(比如系统文件检查器)因此总能找到需要的组件版本。

由此推出三个事实,它们能化解大部分民间传说:

  1. **资源管理器报的大小是”善意谎言”。**WinSxS 主要是硬链接:同一份物理文件被计数多次——既在仓库里,也在 C:\Windows\System32 里。真实独占空间比文件夹”大小”一行显示的数字小得多。
  2. **手动删它里面的任何东西都不安全。**组件存储是一个关系数据库,删掉”看起来旧”的文件夹等于破坏它,而损坏会在几周后以更新失败或 SFC 报错的形式浮出水面,排查起来苦不堪言。所有靠谱的资料口径一致:永远不要手动修剪 WinSxS。
  3. 存在官方的清理工具,而且很好用——就是下一节的 DISM 组件清理。在 Win7 SP1 上,启用它的服务栈更新本身就是通过 Windows 更新下发的。

所以 Windows 7 的配方是:开系统文件模式的 cleanmgr,接着 DISM 组件清理,然后从此不碰 WinSxS。

各版本通用的命令行进阶#

图形界面适合偶尔为之;命令行适合反复做、认真做、或远程做。

cleanmgr /sageset 与 /sagerun:保存你的预设#

磁盘清理支持脚本化配置。流程是”一次性配置 + 无限次执行”:

:: 一次性:打开对话框,勾选你的选择,点确定
cleanmgr /sageset:11

:: 之后每次:按预设 11 的勾选静默执行
cleanmgr /sagerun:11

/sageset:N 打开的对话框会列出所有类别(含系统级);勾选你想自动化的项目,点确定,预设号 N 就存进了注册表。之后 /sagerun:N 按这套勾选无对话框执行。编号随便取——1 到 65535 都行——但取一个好记的;不同的编号保存不同预设,所以你完全可以留一个”日常安全版”和一个”季度激进版”。把清理挂进任务计划程序、登录脚本、或远程桌面会话,靠的就是这一对命令。

一个值得知道的怪癖:/sagerun 会处理所有做过选择的卷;而且有些类别要等提权扫描跑过一次后才出现在 /sageset 里。所以先交互式配一次、验证结果,然后再放手信任它。

DISM 组件清理:官方许可的 WinSxS 瘦身#

Windows 7 SP1+、8.1、10、11 都可用,这是能让 WinSxS 真正变小的工具:

:: 需要管理员权限的命令提示符

:: 先分析——看有多少可回收,不做任何改动
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

:: 执行清理——安全、在线完成、通常无需重启
Dism.exe /Online /Cleanup-Image /StartComponentCleanup

:: 激进变体——连"卸载更新所需的文件"一并删除。
:: 只在系统健康、更新到位的机器上跑。首次运行可能阻塞至 60 分钟。
Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase

StartComponentCleanup 删除被取代的组件版本——那些不再被任何更新或角色引用的版本——在一台服役多年的系统上典型可回收 2–10 GB。它安全:遍历的是组件库自己的数据库,只删引用计数为零的内容。它也慢:SSD 上预计 10–30 分钟,Win7 时代的机械盘更久,期间 DISM 日志增长、机器可能发沉。挑个不忙的时候跑。

/AnalyzeComponentStore 是你的朋友:它报告组件库实际大小、Windows 自己是否建议清理(预估收益小时它会直说”不推荐”)、以及可回收估计值。慢操作之前先免费侦察——永远值得。

/ResetBase 值得单独一段警告:跑完之后,当前已安装的更新将无法逐个卸载——它删的正是让卸载成为可能的那批文件。它不影响 Windows.old 和系统还原(那是另外的机制),但它确实是在”用未来的灵活性换现在的几个 GB”。合理的策略是:普通 StartComponentCleanup 每季度跑;/ResetBase 只在机器稳定、补丁齐全、又真的缺磁盘时才用。

DNS 缓存、缩略图缓存、着色器缓存#

三个小缓存,“排障”的作用和”腾空间”一样大:

DNS 缓存占不了多少空间,但刷新它是名称解析抽风时的标准第一步——一条过期的否定记录能让一台主机”看起来挂了”:

ipconfig /flushdns

瞬时完成、无副作用,一个命令解决的”网络坏了”事件比任何其他命令都多。想先看看缓存了什么再清,配 ipconfig /displaydns。

缩略图缓存位于 %LOCALAPPDATA%\Microsoft\Windows\Explorer,是 thumbcache_*.db 一族文件。资源管理器运行期间它们被锁定,所以安全的做法是先退出 Explorer,或者直接用磁盘清理里的”缩略图”项——它会正确处理锁定。删它省不了多少空间,但真正的常用理由是强制重建损坏或过期的图标。

DirectX 着色器缓存按应用累积编译好的 GPU 着色器(游戏尤其多)。现代 Windows 在临时文件清单里暴露了它;按路径说,它位于 %LOCALAPPDATA%\D3DSCache,各应用自己的则位于 %LOCALAPPDATA% 下的发行商目录里。删除安全——代价是每个游戏接下来几次启动时的着色器重编译卡顿。它是显卡驱动更新后画面异常的标准解法,所以它属于这篇指南:清缓存既是维护,也是排障。

绝对不要删的清单#

这些文件躺在 C:\ 根目录,默认隐藏,而且个头巨大。每一个都有”正确的管理方式”,而没有任何一种正确方式叫”删除”:

  • pagefile.sys——虚拟内存的后备。Windows 把冷的内存页挪到这里,好让物理内存去服务热页。它通常按内存的一定比例分配,32 GB 内存的机器上可能有 8–32 GB。删它(运行期间它也被锁定,实际删不掉)无非是 Windows 重启后重建、或者在无虚拟内存状态下运行——后者会导致应用在内存还有剩余时就报”内存不足”。正确的管理方式:系统 → 高级系统设置 → 性能 → 设置 → 高级 → 虚拟内存,在那里可以把它挪到别的盘、或设一个更小的自定义大小。

  • hiberfil.sys——休眠的后备,大小约为内存的一大半。它有一个正当且可逆的关闭开关,而理解这笔账很值得。**睡眠(sleep)**是内存持续供电、整机进入低功耗:进入和唤醒都快,但断电就丢状态。**休眠(hibernation)**是把内存写进磁盘然后完全断电:零耗电、断电也不怕、唤醒慢几秒——而它需要 hiberfil.sys 存在。在笔记本上,休眠是”断电安全的挂起”,应该保留;在本来就每天关机的台式机上,关掉它可以回收”内存大小级”的几个 GB:

    :: 管理员运行——禁用休眠并删除 hiberfil.sys
    powercfg /h off
    
    :: 后悔了再开回来
    powercfg /h on

    一个不显眼的副作用:Windows 的快速启动(让开机”秒开”的混合关机)同样依赖休眠机制。powercfg /h off 会连带关掉快速启动——这笔账的本质是磁盘空间换开机速度,只有你自己能定价。

  • swapfile.sys——页面文件的小兄弟,专供商店应用使用。别碰它,它以 MB 计。

  • WinSxS——上文讲过了。永远不手动修剪,只用 DISM。

  • System Volume Information——系统还原和卷影副本。Win7 时代的机器在这里存了十年的还原点,几十 GB 很常见。正确的管理方式是 vssadmin resize shadowstorage /for=C: /on=C: /maxsize=10GB(管理员)或系统保护对话框——而不是删文件夹,它的 ACL 锁着就是为了拦你。

开发者缓存:磁盘空间的真正去向#

通用教程清完操作系统,能找出 4 GB。你真正的问题是包管理器的 60 GB。下面每个工具维护的缓存按设计都是可安全清除的——它们都会按需重新下载——而且放任不管都会无限增长。

npm#

# 清理前后各跑一次——npm 会报告缓存大小
npm cache verify

# 全部清空(npm 5+:安全、自愈)
npm cache clean --force

npm 的缓存在 %LOCALAPPDATA%\npm-cache,一个活跃的 JavaScript 项目上 2–5 GB 很常见。缓存损坏会产生那些著名的 ENOENT 或完整性校验错误,清缓存是标准解法,代价只是重新下载。网络慢的机器要掂量一下:缓存存在的意义,就是让第二个共享依赖的项目 npm install 变快。

pip#

pip cache purge        # 全清
pip cache info         # 先看位置和大小
pip cache remove numpy # 只清某个包的 wheel

pip 把构建好的 wheel 缓存在 %LOCALAPPDATA%\pip\cache。由于 pip 在没有匹配 wheel 时会从源码构建,这个缓存的价值是免于重新编译——在一台没装编译工具链的 Windows 机器上清空它,可能让一次重装变成漫长的下午。所以优先用 pip cache remove <包名> 做定向清理。

NuGet#

:: 所有本地缓存(http、packages-cache、global-packages、temp)
nuget locals all -clear

:: 或只清 global-packages——大头在这里
nuget locals global-packages -clear

global-packages 文件夹(%USERPROFILE%\.nuget\packages)才是重点:每个解决方案还原过的每个包、永久保留,.NET 开发者的机器上 5–20 GB 稀松平常。清空是安全的——下次构建的 restore 会重新拉取——但更聪明的长期做法是定向清理:删掉已归档项目对应的包目录,让活跃项目自然重新还原。

Gradle#

gradle --stop          # 先停掉占用文件锁的守护进程

然后删除(或缩小)%USERPROFILE%\.gradle\caches。Gradle 的缓存按”Gradle 版本 × 依赖 × 变体”多维分层——几个项目用不同 Gradle 版本的机器上,一切都是成倍膨胀的。整体删除 caches 安全,但下次构建会完整重下所有依赖;有私有仓库的企业项目上,这个代价不小。更温和的手段:旧的 Gradle 发行版堆积在 %USERPROFILE%\.gradle\wrapper\dists,把不再有项目使用的版本删掉即可。

Docker#

Docker Desktop 的磁盘占用值得单独贴一张警告标签。镜像、容器、卷都放在一个 VM 磁盘镜像里——WSL2 后端下是 %LOCALAPPDATA%\Docker\wsl\data\ext4.vhdx——而这个文件只增不减。在 Docker 内部删镜像(docker system prune -a)释放的是 VM 内部的空间,Windows 这一侧的 .vhdx 不会自动缩小:

# 看看内部都是什么在占地方
docker system df

# 删除已停止的容器、悬空镜像、未用网络、构建缓存
docker system prune

# 连未使用的镜像一并删(激进——下次构建重新拉取)
docker system prune -a

清理之后还要压缩 VHDX:退出 Docker(wsl --shutdown),然后对文件用 Optimize-VHD(带 Hyper-V 的专业版)或 diskpart 的 compact vdisk。这一步经常能让文件直接减半。这是 Windows 上收益率最高的开发者清理操作,而几乎没人知道最后一步。

VS Code#

三类东西在悄悄堆积:扩展本体在 %USERPROFILE%\.vscode\extensions(卸载不用的——扩展装起来很便宜,却能堆好几年);工作区存储在 %APPDATA%\Code\User\workspaceStorage(每打开过一个工作区就一个文件夹,装着缓存和本地历史——已删除项目的条目是纯遗留,可安全删除);以及 %APPDATA%\Code\Cache* 一族(渲染缓存,可清,会重建)。

常见问题#

多久清一次合适?#

让自动化扛住日常,人的精力留给每季度一次的深清。具体一点:存储感知(Win10/11)按月度节奏处理临时文件和回收站,一劳永逸;Windows 7/8 用任务计划程序按月触发 cleanmgr /sagerun 达到同样效果;DISM 组件清理每季度或每次大版本更新后跑一次;Docker 在 docker system df 超过你能承受的阈值时 prune。每周清一次是个信号——说明你在回避真正的问题,而问题通常出在某个具体容器、某个具体的 node_modules 用法、或一直没回收的 Windows.old 上。

CCleaner 这类清理软件有必要装吗?#

对 2026 年的开发者来说,基本没必要。这类工具存在的理由在 Windows 吸收了它们的功能之后就不成立了:存储感知 + 磁盘清理 + 磁盘清理的系统文件模式,覆盖了当年 CCleaner 清理的项目清单,还不带第三方工具携带的风险——激进默认值删掉系统仍需要的东西(它处理 Windows.old 翻车的年代堪称传奇)、“浏览器清理”功能把你登录的所有网站统统登出、捆绑安装,再加上 2017 年那次供应链事件至今仍是这个品类风险的教科书案例。真正剩下的两个小众场景:卸载器(能连带清掉应用残留,对付流氓软件有用);以及 Windows 7——内置工具最弱的地方。其他一切:内置路径更安全、免费、而且已经装好了。

要等 C 盘变红再清吗?#

不要——红条是”晚了”,不是”快到了”。容量条变色之前,好几个机制已经在悄悄出问题:Windows 更新需要暂存空间,空间不够就直接失败;空闲低于约 10% 时系统还原停止创建还原点;页面文件需要扩张时扩不了;SSD 在接近满载时有效性能和寿命余量双双受损。把 20% 空闲当作”从容”、15% 当作”该动了”、10% 当作”现在就动”。存储感知和计划任务 /sagerun 的全部意义,就是让清理按日程发生而不是在危机中发生——而危机中清理,恰恰是人们做出糟糕决定(包括本文用一整节警告的那些删除)的时候。

清理垃圾真能让 Windows 变快吗?#

实话实说:多数情况下不能;少数能的场合,幅度也有限。删临时文件不会让一个健康的系统变快——这个信念是 Windows XP 时代的残留,那时臃肿的预读取和碎片化的机械盘真的会拖慢系统。现代意义上影响性能的场合是:SSD 空闲超过约 90% 满(腾空间确实有用)、系统盘满到影响更新(进而表现变差)、以及清除损坏的缓存作为排障手段(着色器缓存、DNS、npm)。为空间而清、为修复而清,别为速度而清——速度传说主要是清理软件的营销话术。

注册表要不要”清理”?#

不要。在 XP 之后的任何 Windows 上,注册表清理器都是在给不存在的问题找解药。注册表撑死几百 MB,空间收益约等于零;性能说辞是民间传说——系统不会因为存在孤儿键而变慢。而风险是真的:清理器删掉某个安装器还在等待的键,产生的故障可以难追踪到任意程度。别碰注册表,磁盘空间的议题里没有它的位置。

结语#

一个耐用的心智模型是:Windows 磁盘被填满,大多是设计使然——缓存存在是因为重新下载很贵,Windows.old 存在是因为回滚很值钱,WinSxS 存在是因为 DLL 地狱更糟。清理不是向这些机制开战,而是顺着它们的过期条件走:让存储感知执行临时文件的生命周期,让 cleanmgr 预设自动化日常,让 DISM 做它为之而生的 WinSxS 手术;至于那些属于系统的文件——pagefile、hiberfil、WinSxS、System Volume Information——每一个都有官方的管理杠杆,永远不要动手删。

而当你做完这一切、磁盘依然紧张时:对开发者来说,诚实的答案通常不在 C:\Windows 里,而在 %USERPROFILE%\.nuget、%USERPROFILE%\.gradle、%LOCALAPPDATA%\Docker,以及散落各项目的十几个 node_modules 里。操作系统如今自我清理做得不错;我们的工具链不会——那一半得靠我们自己。

← 全部指南