“扩展进程占用过高”是Extension Host失控信号,需用Developer: Open Process Explorer查CPU%>30%的插件,禁用后必须重启窗口,配合files.watcherExclude配置(如"/node_modules/": true)和语言服务优化。
“扩展进程占用过高”不是警告,是 Extension Host 进程已失控的明确信号——它通常意味着某个插件在后台持续解析、轮询或监听失败后卡死,必须立刻定位 PID 并终止对应子进程,否则 CPU/内存会持续爬升。
怎么看哪个扩展在疯跑
别信任务管理器里那个“Code Helper”,它只是壳。真正干活的是
子进程,得用 VSCode 自己的诊断入口看:
按
(Windows/Linux)或
(macOS),输入并执行
重点关注 “CPU %” 列:长期 >30% 的
行,右键 → “Copy Process Info”,粘贴出来看完整命令行
命令行里带
、
、
或
的,基本就是它
顺手再开终端跑一次
,它比系统工具更准,直接标出各进程 PID 和实时 CPU%
禁用插件 ≠ 停止进程,重启窗口才是关键
很多插件(尤其是语言服务类)一旦激活就常驻不退,点“Disable”只阻止下次加载,旧进程照常吃资源:
先运行
,确认哪些插件真在跑、占多少 CPU/内存
右键目标插件 →
(不是仅当前工作区)
必须完全关闭当前 VSCode 窗口
(macOS 要退出菜单栏图标),再重新打开项目——
没用
对 Python/TS 项目,可手动清理残留:
,找到 PID 后
files.watcherExclude 写错等于没配
VSCode 默认用 chokidar 监听整个工作区,遇到
这种几万小文件的目录,内核级 inotify 句柄会持续增长且几乎不回收——这不是插件问题,是系统级泄漏:
VSCode 1.118
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
下载
路径通配符必须是
,写成
、
或
都无效
生效必须关闭并重新打开工作区,仅保存
不够
必加项:
、
、
、
Linux 用户若仍卡顿,检查
,低于
就要调高
Python/TypeScript 语言服务不是慢,是默认全量索引
它们不是“卡”,是试图把整个依赖树加载进内存做类型推导,一个含 50+ 包的 Python 项目,
内存轻松破 1.2GB:
Python:把
从
改为
,或关掉
TypeScript:关掉
,避免 npm 包导入时反复解析
ESLint:设
为
,并精简
(比如去掉
)
GitLens:关掉
和
,能降 30%–50% 内存
最常被忽略的一点:AI 类插件(如
)默认会对整个工作区做代码索引,且不随
生效——这类插件要么关掉索引,要么彻底卸载,否则优化其他项效果有限。
Extension HostCtrl+Shift+PCmd+Shift+PDeveloper: Open Process ExplorerExtension Hostesbenp.prettier-vscodegitlens.gitlensms-python.pythondbaeumer.vscode-eslintcode --statusDeveloper: Show Running ExtensionsDisable (For All Folders)Developer: Reload Windowps aux | grep -i "pyright\|tsserver\|python.*language"kill -9 [PID]node_modules"**/node_modules/**": true*node_modules*/node_modules/node_modules/**settings.json"**/node_modules/**": true"**/dist/**": true"**/.git/**": true"**/*.log": truecat /proc/sys/fs/inotify/max_user_watches524288Extension Hostpython.languageServerPylanceJedipython.analysis.extraPathstypescript.preferences.includePackageJsonAutoImportseslint.runonTypeeslint.probe.jsongitlens.codeLens.enabledgitlens.hovers.enabledtongyi lingmafiles.watcherExclude