VSCode插件真实内存占用需通过Developer: Open Process Explorer查看extensionHost各插件RSS值,空闲状态下持续>300MB者为泄漏嫌疑;文件监听器配置不当引发的inotify句柄耗尽亦会导致类似高负载症状。

VSCode 没有“插件本地缓存”的独立视图,所谓“缓存”实际分散在系统级进程内存(RSS)、磁盘缓存目录、以及插件自身维护的运行时对象中——真正要查的是哪部分在吃资源,而不是找一个叫“缓存”的文件夹。
Developer: Open Process Explorer 查 extensionHost 真实 RSS 内存
这是唯一能反映插件真实驻留内存的方式,比任务管理器准得多,因为 Electron 的 extensionHost 是多子进程结构,系统只看到壳进程 Code Helper。
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入并运行Developer: Open Process Explorer - 展开
extensionHost节点,每行对应一个已启用插件,旁标数字是当前 RSS 内存(MB) - 点击
Memory列标题降序排列,重点关注空闲状态下仍 >300 MB 的条目,比如esbenp.prettier-vscode占 620 MB、eamodio.gitlens占 480 MB - 注意区分瞬时峰值(如格式化大 JSON 时飙高)和空闲驻留(关掉所有编辑器标签后仍稳在 350 MB+),后者才是泄漏信号
files.watcherExclude 配错会导致 inotify 泄漏,比插件更伤
VSCode 文件监听器(chokidar)默认扫描整个工作区,若未排除 node_modules 或 .git,会触发内核 inotify 句柄耗尽,表现为 CPU 持续 20%+、响应延迟、甚至崩溃——这不是插件内存问题,但症状一模一样。
- 在用户或工作区
settings.json中配置:"files.watcherExclude": { "**/node_modules/**": true, "**/.git/**": true, "**/dist/**": true, "**/build/**": true } - Linux/macOS 上可验证是否生效:终端执行
cat /proc/sys/fs/inotify/max_user_watches,若值 inotifywait -m -r . 报 “No space left on device”,说明已泄漏 - 改完必须重载窗口(
Developer: Reload Window)才生效,仅保存 settings 不触发重置
禁用插件后内存不降?你没重启 extensionHost
右键插件选 Disable (For All Folders) 只是标记状态,旧的 extensionHost 子进程仍在运行,RSS 完全不会释放。
- 禁用后,必须立刻在命令面板运行
Developer: Restart Extension Host(不是Reload Window,后者不一定重建进程) - 若仍无效,彻底退出 VSCode(macOS 点菜单栏 →
Quit;Windows/Linux 关闭所有窗口并清空托盘),再用code --disable-extensions /path/to/project验证是否卡顿消失 - 某些插件(如
GitHub.copilot、ms-vscode-remote.remote-ssh)会注册全局监听器,禁用后可能残留子进程,需手动ps aux | grep -i "copilot\|remote"并kill -9 [PID]
插件市场打不开或显示旧版本?清 Cache 和 CachedData
VSCode 插件市场(Extensions 视图)的“缓存”不在插件安装目录,而在两个独立目录:Cache(HTTP 响应体、CDN 图片)和 CachedData(扩展元数据快照),二者缺一不可。
- 必须完全退出 VSCode 后操作,否则文件被锁住,删了也白删
- 路径:
- Windows:
%USERPROFILE%\AppData\Roaming\Code\Cache和%USERPROFILE%\AppData\Roaming\Code\CachedData - macOS:
~/Library/Caches/com.microsoft.VSCode和~/Library/Application Support/Code/CachedData - Linux:
~/.config/Code/Cache和~/.config/Code/CachedData
- Windows:
- 删完重启,首次打开 Extensions 视图变慢是正常重建行为;若仍卡在 “Fetching extensions”,检查开发者工具(
Ctrl+Shift+I)Network 标签页是否有gallery.visualstudio.com的 403/404 响应
真正的瓶颈往往不在插件代码本身,而在它默认开启的激进行为(如 GitLens 全仓库缓存、ESLint onType 模式、Prettier 遍历查找配置)——这些设置改起来就几行 JSON,但效果比禁用插件还明显。别急着删,先看 Workspace 列路径、再调配置、最后动进程。


















