vscode无内置缓存空间统计界面,必须用命令行定位测算:windows用powershell执行cd "$env:appdata\code"后脚本查前五大目录,macos/linux用du -sh递归统计extensions、workspacestorage、cache等真实体积,图形界面因跳过隐藏项、符号链接及权限受限目录而严重失真。

VSCode 没有内置的“缓存空间统计”界面,必须手动定位路径 + 命令行测算,否则看到的只是模糊的进程内存或错误的文件资源管理器排序。
查不到真实大小?因为图形界面不显示隐藏子目录总和
在文件资源管理器里右键 AppData\Roaming\Code → “属性”,显示的大小往往远低于实际占用——它跳过符号链接、忽略权限受限子目录(如 workspaceStorage 里某些加密工作区),更不会递归统计所有 Cache 和 Extensions 下的嵌套体积。
- Windows 资源管理器默认不计算隐藏文件夹(如
Crashpad)和系统保护目录 - macOS Finder 的“显示简介”对
~/Library/Caches/com.microsoft.VSCode.ShipIt类路径常返回 0B - Linux Nautilus 对
~/.vscode/extensions下带版本号的子目录(如ms-python.python-2026.8.1)只算顶层,漏掉node_modules里的几十 MB
用 PowerShell 快速定位真正占空间的缓存目录(Windows)
打开 PowerShell(无需管理员权限),执行以下命令:
cd "$env:APPDATA\Code"
Get-ChildItem -Directory | ForEach-Object {
$size = (Get-ChildItem $_.FullName -Recurse -File -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum).Sum
[PSCustomObject]@{Folder=$_.Name; SizeMB=[math]::Round($size/1MB, 2)}
} | Sort-Object SizeMB -Descending | Select-Object -First 5
你会立刻看到类似输出:
Folder SizeMB ------ ------ Extensions 12480.32 workspaceStorage 8921.75 Cache 4210.63 Crashpad 3850.11 History 1205.47
-
Extensions高通常因带本地模型的插件(如ms-python.python、tabnine.tabnine-vscode) -
workspaceStorage单个子目录超 500MB?大概率是你半年前打开过但没关的大型项目留下的索引快照 -
Cache可安全删,但删完重启 VSCode 会重建——不是问题,是 Electron 渲染层必需缓存
macOS/Linux 用户用 du 命令看真实缓存体积
终端中运行:
du -sh ~/Library/Application\ Support/Code/{Extensions,workspaceStorage,Cache} 2>/dev/null
du -sh ~/.vscode/extensions 2>/dev/null
du -sh ~/.cache/vscode 2>/dev/null
注意几个关键点:
-
~/Library/Caches/com.microsoft.VSCode.ShipIt是自动更新缓存,可清空,不影响使用 -
~/.cache/vscode是部分插件(如vscode-cpptools)的独立缓存根目录,不是 VSCode 主程序目录下的Cache -
du -sh后加2>/dev/null是为了屏蔽权限拒绝报错(比如某些workspaceStorage子目录被标记为“仅限当前用户”)
别被 settings.json 或“清理扩展”按钮骗了
VSCode 设置里的 “Clean unused extensions” 按钮只删已卸载插件的残留元数据,不碰 node_modules;而 files.watcherExclude 这类配置只影响文件监听器内存,对磁盘缓存体积 零影响。
- 真正吃空间的是:
Extensions目录下插件自带的二进制文件(如rust-analyzer的rust-analyzer-v0.0.0-x86_64-pc-windows-msvc.exe)、workspaceStorage里每个工作区生成的semanticdb或intellisense索引文件 - 想快速释放空间?优先删
Extensions中你明确禁用且不再需要的插件文件夹(名字格式是publisher.name),而不是点设置里的“卸载”——后者只改状态,不删文件 -
Crashpad目录可全删,它是崩溃日志,不是缓存;但删前确认 VSCode 已完全退出(托盘图标消失,任务管理器无Code进程)
最易被忽略的是:同一插件可能在多个路径存缓存(比如 vscode-cpptools 同时写入 AppData\Local\Microsoft\vscode-cpptools 和 AppData\Roaming\Code\workspaceStorage\...\intellisense),只清一处等于白忙。











