vscode 缓存需用命令行精准定位:windows 用 powershell 统计 code 目录子文件夹大小,linux/macos 用 du 扫描 cache、extensions、workspacestorage 及 ~/.cache 中相关目录;必须彻底退出 vscode 再清理,cache 可安全删除,workspacestorage 需按修改时间甄别,crashpad 可清空,settings.json 等配置文件不可删。

用命令行快速定位 VSCode 缓存目录真实大小
图形界面根本看不出哪个子目录占了多少空间,du(Linux/macOS)或 Get-ChildItem(PowerShell)才是唯一靠谱的方式。VSCode 的缓存分散在多个路径,不遍历就容易漏掉大户。
-
AppData\Roaming\Code(Windows)或~/.config/Code(Linux)里,重点盯Cache、Extensions、workspaceStorage这三个子目录 - Windows 用户进 PowerShell 执行:
cd "$env:APPDATA\Code"<br>Get-ChildItem -Directory | ForEach-Object { $size = (Get-ChildItem $_.FullName -Recurse -File | Measure-Object -Property Length -Sum).Sum; [PSCustomObject]@{Folder=$_.Name; SizeMB=[math]::Round($size/1MB, 2)} } | Sort-Object SizeMB -Descending | Select-Object -First 5 - Linux/macOS 用户终端执行:
du -sh ~/.config/Code/{Cache,Extensions,workspaceStorage} 2>/dev/null | sort -hr - 别忘了隐藏目录:
~/.cache下的vscode-cpptools、Code\Crashpad等也常达数 GB,用du -sh ~/.cache/* | grep -i vscode快速扫一遍
为什么删了 Cache 文件夹后马上又涨回来
因为 VSCode 没完全退出——系统托盘里的进程还在往里写。Electron 渲染层和 Chromium 缓存会自动重建,且只要 code 进程活着,workspaceStorage 就持续追加索引快照,哪怕你只是打开一个文件再关掉。
- 必须彻底退出:Windows 右键托盘图标 → “Quit”,macOS 点菜单栏 Code → “Quit Visual Studio Code”,Linux 关掉所有窗口后检查
ps aux | grep code是否还有残留 -
Cache目录可安全删除,但删完立刻重启 VSCode,它会重建并填充新缓存;而workspaceStorage里的每个子目录对应一个打开过的工作区,删错会导致搜索历史、符号跳转变慢甚至失效 - 常见误判:
Crashpad是崩溃日志,清空无害;但User\settings.json和keybindings.json是你的配置,不是缓存,别动
哪些缓存能直接删,哪些得按需清理
不是所有“看起来像缓存”的东西都该一刀切。有些删了省空间,有些删了反而让 VSCode 更卡。
- 可安全全删:
Cache(Chromium 渲染缓存)、Crashpad(崩溃日志)、Extensions下已禁用插件的文件夹(名字是publisher.name格式,确认没勾选启用再删) - 建议按需删:
workspaceStorage—— 进该目录,用ls -lt或文件管理器看修改时间,挑半年以上没更新过的子目录删;每个子目录名是 UUID,但里面workspace.json会记录关联路径,可先打开确认 - 不能随便删:
User下的settings.json、snippets、keybindings.json;Local\Programs\Microsoft VS Code\Cache是安装目录缓存,删它不影响运行,但重装 VSCode 后又会回来
用 iotop 或 lsof 实时抓正在写缓存的进程
当你发现磁盘 I/O 突然飙高、.cache 目录大小肉眼可见增长,说明某个后台进程正疯狂落盘——这时候光看目录大小没用,得锁进程。
- Linux 上开终端跑
sudo iotop -o,找cpptools、rust-analyzer、pyright这类语言服务器进程,记下 PID - 再执行
ls -l /proc/[PID]/fd | grep cache,能看到它正在写的具体文件路径,比如/home/user/.cache/vscode-cpptools/.../index.db-wal - macOS 用
sudo lsof -p [PID] | grep -i cache效果类似;Windows 没原生等价命令,只能靠资源监视器 → 磁盘活动 → 查看“读取”最猛的进程,再结合任务管理器“详细信息”页签确认 - 注意:
cpptools写缓存是正常行为,但若连续几分钟 I/O 不停,大概率是索引卡死或路径配置错误(比如files.watcherExclude漏配node_modules)
真正难处理的是那些不暴露路径、只在内存里缓存然后批量刷盘的插件——它们不会在 .cache 里留大文件,却能让 workspaceStorage 每天涨几百 MB。这种得靠 Developer: Open Process Explorer 看 extensionHost 子进程 RSS,再结合 workspaceStorage 子目录修改时间交叉验证。











