VSCode磁盘占用高是缓存长期堆积所致;安全清理需先彻底退出所有进程,再删除Cache、GPUCache、CachedData及老旧workspaceStorage子目录,Remote插件缓存也需单独清理。

VSCode 占用几十 GB 磁盘空间,不是 bug,而是缓存长期堆积的必然结果;直接删 Cache、GPUCache、CachedData 和部分 workspaceStorage 子目录最安全、见效最快,但必须先彻底退出所有进程,否则删不干净或触发重建异常。
为什么删了缓存空间没立刻释放?
常见错误现象:workspaceStorage 或 Cache 目录删完后磁盘占用不变,任务管理器里仍看到 Code.exe、node.exe 或 Code Helper 进程在后台运行——这些进程锁住了文件句柄,Windows/macOS/Linux 都无法立即回收空间。
- Windows:打开任务管理器 → “详细信息”页 → 结束所有
Code.exe、Code Helper.exe、node.exe - macOS:活动监视器 → 搜索
Code→ 强制退出全部相关进程 - Linux:终端执行
pkill -f "code"或killall code - 若用过 Remote - WSL,还需先运行
wsl --shutdown,再关 VSCode
哪些缓存目录可以放心全删?
Cache 和 GPUCache 是纯运行时缓存,删完重启会自动重建,不影响任何配置、插件状态或登录态。它们是 Chromium 渲染层产物,长期不清理会导致 UI 卡顿、右键响应迟滞、终端输入延迟。
- Windows 路径:
%APPDATA%\Code\Cache、%APPDATA%\Code\GPUCache - macOS 路径:
~/Library/Caches/com.microsoft.VSCode(注意不是Application Support下那个) - Linux 路径:
~/.cache/Code - 别碰
%APPDATA%\Code\User和%APPDATA%\Code\GlobalStorage—— 这里存着你的settings.json、Snippets、信任工作区标记等关键配置
workspaceStorage 怎么精准清理,避免重建拖慢启动?
workspaceStorage 是 C 盘空间最大头目,每个子目录对应一个你打开过的文件夹,名字是 GUID(如 8a2b3c4d...),无法靠名称判断归属,但修改时间基本等于你最后一次打开该工作区的时间。
- 进入路径:
%APPDATA%\Code\User\workspaceStorage(Windows)或~/.config/Code/User/workspaceStorage(Linux/macOS) - 按“修改日期”排序,选中所有修改时间早于 90 天的子目录删除
- 重点盯体积标着 “1.2 GB”、“2.7 GB” 的长名目录——大概率是已废弃的 WSL 工作区、monorepo 或含大量
node_modules的 Python 项目残留 - 删错不会丢
.vscode/settings.json或launch.json,但首次重开该工作区时搜索和跳转会慢几秒(索引重建)
插件失效、灰显、报 Failed to fetch?专清 *-cache 子目录
插件更新中断后,会在 extensions 目录下留下带 -cache 后缀的损坏包(如 ms-python.python-2024.12.0-cache)。VSCode 启动时会尝试加载它,结果就是插件不激活、图标灰显、语言服务起不来。
- 路径:
%USERPROFILE%\.vscode\extensions(Windows)或~/.vscode/extensions(macOS/Linux) - 只删名字匹配
*-cache的文件夹,不要动ms-python.python-2024.12.0这类主扩展目录 - PowerShell 快速清理:
Get-ChildItem "$env:USERPROFILE\.vscode\extensions" | Where-Object {$_.Name -match '-cache$'} | Remove-Item -Recurse -Force - 删完重启,VSCode 会自动重新下载并解压最新版插件,比“禁用再启用”更彻底
真正容易被忽略的是:Remote 插件(如 Remote - SSH、Dev Containers)会在 %APPDATA%\Code\Remote 或 ~/.vscode-server 下额外缓存整套远程环境镜像,这部分常达 GB 级,且不会出现在常规清理路径里;如果你已切换到新服务器或不再使用某连接,得单独进对应路径手动删。


















