developer: open process explorer是vscode唯一直观查看各插件真实rss内存和cpu占用的原生命令,需重点关注memory(驻留内存是否>300mb)、cpu(连续10秒是否>25%)及extensionhost下子项(如esbenp.prettier-vscode),禁用后须执行developer: restart extension host才能释放内存。

Developer: Open Process Explorer 是唯一准的插件内存视图
系统任务管理器里看到的 Code Helper 进程数值不可信,它混着渲染进程、共享进程和多个 extensionHost 子进程。真正吃内存的插件,只在 VSCode 自己的进程树里有真实 RSS 记录。
按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS),输入并运行 Developer: Open Process Explorer:
- 展开
extensionHost节点,每行对应一个已启用插件,旁标数字是当前 RSS 内存(MB) - 点击
Memory列标题排序,前几名就是嫌疑对象:比如esbenp.prettier-vscode占 620MB、eamodio.gitlens占 480MB - 注意
Workspace列:带具体路径(如/home/user/project)的,基本可锁定为当前工作区关联;没显示路径的,右键 →Reveal in Explorer看它加载了哪个package.json
Activation Time > 300ms 的插件未必吃内存,但会拖慢响应
Developer: Show Running Extensions 不反映真实 RSS,更适合看激活延迟——它告诉你插件响应触发条件(比如打开一个 .ts 文件)花了多久,不是启动时加载代码的时间。
关键看三列:
-
Activation Time超过 300ms 就该警惕:比如ms-python.python打开.py文件后卡顿,大概率是它 -
Load Time只是读进内存快慢,对操作卡顿影响小 -
Runtime Impact持续高于 10% 或随编辑动作跳动明显,说明它正在同步占用主线程
这个面板不显示“已安装但未启用”的插件,只列当前激活或已加载的扩展。
禁用插件后内存不降?因为你没重启 extensionHost
右键插件选 Disable (For All Folders) 只是标记状态,旧的子进程还挂着,RSS 一毛不动。真正释放内存需要重建进程空间。
必须做这两件事之一:
- 在命令面板运行
Developer: Restart Extension Host(别用Developer: Reload Window,它对内存无影响) - 更彻底的做法:完全退出 VSCode(macOS 要点菜单栏图标 →
Quit;Windows/Linux 关掉所有窗口并清空托盘),再重新打开工作区
验证是否真退出:终端运行 ps aux | grep -i "pyright\|tsserver\|python.*language",若无对应 PID 才算干净。
files.watcherExclude 配错等于白忙,inotify 泄漏比插件更伤
很多教程推荐加 files.watcherExclude 来“省内存”,但漏配或格式错误会导致内核级 inotify 句柄持续泄漏——内存爬升和插件无关,却常被误判。
典型错误写法:
-
"**/node_modules/**"❌(glob 语法不支持双星号嵌套) -
"node_modules"❌(没加前导**/,只匹配根目录下) -
"**/dist/**", "**/build/**"✅(正确格式,逗号分隔,每项独立)
生效后,VSCode 不再为这些路径注册文件监听器,extensionHost 进程内存常能稳降 100–300MB,尤其对含大量依赖的项目。
真正麻烦的是那些用了 SharedWorker 却没调用 terminate() 的插件——它们的内存记在 Shared Memory 里,macOS 上异常高(>800MB)时就得手动关掉对应 Webview 标签页,或者换 CLI 方案替代。











