VSCode CPU占用过高主因是files.watcherExclude未配全或插件后台监听异常;必须在项目.vscode/settings.json中正确配置"/node_modules/": true等规则,并重启工作区,否则CPU持续70%+。

VSCode CPU 占用过高,八成以上是 files.watcherExclude 没配、或插件在后台持续监听/分析文件导致的——不是硬件不行,而是编辑器被大量无意义的文件变更事件拖垮了。
为什么 files.watcherExclude 配不全,CPU 就稳居 70%+
VSCode 底层用 chokidar + 系统 inotify/FSEvents 监听文件变化。一旦工作区含 node_modules(通常超 2 万文件)、dist、.git,每次保存、Git 操作甚至 npm install 都会触发海量事件,渲染线程持续忙于处理,表现为打字卡、状态栏转圈、Git 刷新慢。
- 必须写进项目根目录的
.vscode/settings.json,用户级设置对多项目无效 - 通配符必须是
"**/node_modules/**": true,写成"node_modules/**"或漏掉末尾/会失效 - Python 项目加
"**/venv/**": true和"**/.mypy_cache/**": true;前端额外加"**/build/**": true和"**/out/**": true - 改完后必须关闭并重新打开该工作区,仅刷新窗口不生效
Developer: Show Running Extensions 里哪些数字真危险
这个命令不是看“装了啥”,而是查谁在劫持主线程:
-
Startup Time > 150ms:比如某些 Copilot 衍生插件、主题预加载器,一启动就抢交互权 -
CPU列持续跳动且内存 > 200MB:说明它正在跑分析/监听/缓存任务,GitLens、ESLint、Prettier常蹲在这儿 - 状态为
Activated但耗时≈0:只是注册了事件,还没干活;Running且 CPU 波动明显,才是真吃资源的活进程
禁用插件前先调配置,很多“重”是默认太莽
别急着卸载——多数高 CPU 是插件默认开启了全量扫描、实时索引等激进策略:
-
GitLens默认全仓库历史扫描 → 改"gitlens.advanced.caching.enabled": false -
TypeScript默认加载所有@types→ 改"typescript.preferences.includePackageJsonAutoImports": "auto" -
ESLint默认onType实时检查 → 改成"eslint.run": "onSave" - 所有修改必须写入
.vscode/settings.json或用户settings.json,改完需重启窗口
Linux/macOS 下 inotify 句柄不够也会假死
VSCode 文件监视依赖系统 inotify 句柄数。Linux 默认 max_user_watches 常为 8192,一个 node_modules 就可能耗尽:
- 运行
cat /proc/sys/fs/inotify/max_user_watches查当前值 - 若低于
524288,执行echo 524288 | sudo tee /proc/sys/fs/inotify/max_user_watches - macOS 用户若用 Dropbox/iCloud 同步代码目录,务必把项目移出同步文件夹——云盘客户端和 VSCode 争抢句柄,卡顿成常态
真正卡住你的,往往不是某个插件本身,而是它和 files.watcherExclude、系统 inotify、语言服务器三者叠加后的连锁反应。配错一行通配符,或漏掉一个 **/,就可能让优化效果归零。



















