直接打开developer: open process explorer可快速定位吃内存扩展,重点关注memory列超200mb且启动后持续居高的条目,如auto import、prettier、eslint;extension host内存>1.5gb或rss不回落即存在泄漏,禁用后须彻底重启vscode才能释放内存。

怎么快速定位哪个扩展在吃内存
直接打开 Developer: Open Process Explorer,别猜、别试、别一个个禁用。这个面板会实时列出所有渲染器进程和 Extension Host 的 CPU 与内存占用——重点关注“Memory”列数值超过 200MB 的条目,尤其是启动后就居高不下的那些。
常见高耗内存扩展:Auto Import(180–320 MB)、Prettier(40–90 MB,但保存大文件时会瞬间冲高)、ESLint(尤其开启 eslint.enable + eslint.run: "onType" 时)。
注意:Extension Host 进程内存 >1.5GB 基本可判定存在泄漏或滥用;若该进程 RSS 持续上涨且关闭所有文件后不回落,就是典型内存泄漏信号。
为什么禁用扩展后内存没降下来
VSCode 的内存不会立刻释放,尤其当扩展已加载 AST、缓存了文件模型或注册了全局监听器。必须重启 VSCode 才能清空 Extension Host 进程堆空间。
- 禁用扩展 ≠ 卸载:它仍保留在磁盘,下次启动可能因
activationEvents(如onStartup或*)再次激活 - 某些扩展(如
GitLens)即使被禁用,其语言服务器进程可能仍在后台运行,需手动终止gitlens-server进程 -
Renderer进程残留大量TextModel实例?说明编辑器没真正关闭标签页,检查是否启用了workbench.editor.enablePreview
哪些配置项改了立竿见影
不是所有设置都同等有效。以下四项写入 settings.json 后,实测能让 Extension Host 内存下降 300–600MB:
"extensions.autoCheckUpdates": false —— 关闭静默更新检查,避免周期性唤醒 Host 堆
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
"search.followSymlinks": false —— 防止搜索意外钻进 node_modules 软链,引发重复遍历
"files.watcherExclude": { "**/node_modules/**": true, "**/dist/**": true } —— 直接砍掉文件监视器的 inotify 句柄压力源
"telemetry.telemetryLevel": "off" —— 干掉遥测事件队列、加密上下文和上报缓冲区,省下约 95MB
为什么 files.exclude 不管用,但 files.watcherExclude 管用
files.exclude 只影响资源管理器显示和搜索结果过滤,**不阻止文件监视器监听这些路径**;而 files.watcherExclude 是直接告诉底层 chokidar/fsevents “别管这些目录”,从系统调用层切断 I/O 压力源。
Linux 用户额外注意:/proc/sys/fs/inotify/max_user_watches 默认常为 8192,一个 node_modules 就能轻松打满——此时即使配了 watcherExclude,其他未排除目录的监听也会失败并退化为轮询,反而更耗 CPU。
所以顺序必须是:先加 files.watcherExclude,再确认 max_user_watches ≥ 524288,最后才考虑 files.exclude 做 UI 层精简。










