vscode卡顿和空间占用的主因是缓存目录和插件残留,需彻底终止所有code进程后清理cache、gpucache、*-cache扩展子目录及老旧workspacestorage,remote和ai插件缓存也须单独处理。

VSCode运行代码本身不产生大量文件——真正吃空间、拖慢响应、导致插件失效的,是它背后堆积的缓存目录和插件残留。删错地方会丢配置,不彻底退出进程则删不干净,直接清空整个Extensions或User目录是最常见误操作。
Cache 和 GPUCache 目录必须清,但得先杀光所有 Code 进程
这两个目录是 Chromium 渲染层产物,长期积累会导致 UI 卡顿、右键菜单延迟、终端输入卡顿。它们不随 VSCode 退出自动清理,也不按 LRU 淘汰,只会越滚越大。
- Windows 路径:
%APPDATA%\Code\Cache和%APPDATA%\Code\GPUCache - macOS 路径:
~/Library/Caches/com.microsoft.VSCode(注意不是 Application Support) - Linux 路径:
~/.cache/Code - 删之前务必确认无残留进程:Windows 任务管理器里找全
Code.exe、Code Helper.exe、node.exe;macOS 用活动监视器搜Code强制退出;Linux 执行pkill -f "code" - 删完重启,首次打开稍慢属正常,不会丢
settings.json或已打开文件
插件报 Failed to fetch 或灰显?只删 *-cache 子目录
这不是插件坏了,而是更新中断后留下的损坏临时包。比如 ms-python.python-2024.12.0-cache 这类名字带 -cache 后缀的文件夹,VSCode 启动时会尝试加载它们,结果就是语言服务起不来、跳转定义失败。
- 路径统一在:
~/.vscode/extensions/(Windows/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 - macOS/Linux 可用:
find ~/.vscode/extensions -name "*-cache" -type d -exec rm -rf {} +
workspaceStorage 是 C 盘空间最大头目,不能全删,要按时间筛
每个子目录对应一个你打开过的项目,名字是 GUID,体积动辄 1–5 GB,尤其 WSL 工作区、monorepo 或含 node_modules 的 Python 项目残留最肥。
- Windows 路径:
%APPDATA%\Code\User\workspaceStorage - macOS/Linux 路径:
~/Library/Application Support/Code/WorkspaceStorage或~/.config/Code/WorkspaceStorage - 进目录后按“修改日期”排序,删除所有修改时间早于 90 天的子目录
- 重点盯体积标着 “1.2 GB”、“2.7 GB” 的长名目录——大概率是已废弃项目
- 删错不会丢项目里的
.vscode/settings.json,但首次重开该工作区时搜索和符号跳转会慢几秒(索引重建)
Remote 插件和 AI 相关缓存容易被忽略
如果你用过 Remote - SSH、Dev Containers 或 Copilot 相关插件(比如 ms-python.python 自带本地模型),它们会在独立路径下建缓存,不清理照样吃空间、拖启动。
- Remote 缓存路径示例:
%APPDATA%\Code\Remote(Windows)、~/.vscode-server(WSL) - Copilot / AI 插件常把令牌和模型缓存在:
%APPDATA%\Code\User\globalStorage\*下的子目录(如augment.*) - 这类缓存没有通用命名规则,建议先用 PowerShell 查前五大目录:
cd "$env:APPDATA\Code"; 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 - 看到异常大的
Remote或globalStorage子目录,且确认不再使用对应连接或试用功能,再手动删
最易被忽略的是:删完缓存后磁盘空间没立刻释放,往往是因为后台还有 Code Helper.exe 或 node.exe 没杀干净;Remote 场景下没先执行 wsl --shutdown 就关 VSCode,也会导致部分缓存锁死无法删除。











