code --status是vscode性能诊断第一入口,可查看各子进程cpu/内存占用,重点排查extension host高占用、files.watcherexclude配置、语言服务器模式及远程/c++扩展异常。

code --status 是第一眼必须看的命令
VSCode 运行代码时 CPU 持续飙高,界面却没卡——说明问题不在主 UI 线程,而在某个后台子进程里。别靠任务管理器里一个 Code Helper 进程瞎猜,它只是壳。code --status 才是真相入口:它会直接列出所有真实子进程(Extension Host、Search、tsserver、pyright、cpptools-srv 等)的 PID、实时 CPU% 和内存占用。
重点关注以下几类:
-
Extension HostCPU > 60% 且不回落 → 某插件在轮询、监听失败后卡死,或 onSave 逻辑耗时过高 -
Search进程内存 > 300MB →rg.exe正在扫node_modules或符号链接目录 - 进程名含
tsserver、pyright、cpptools-srv→ TypeScript/Python/C++ 语言服务在全量索引依赖树 -
Shared Process占高 → 遥测(telemetry.telemetryLevel)、设置同步或自动更新在后台轮询
记下高占用进程的 PID,再用 ps -p [pid] -o comm=(macOS/Linux)或任务管理器“详细信息”页右键 → “打开文件位置”,确认是否来自 esbenp.prettier-vscode、gitlens.gitlens、ms-python.python 等。
禁用插件后 CPU 不降?旧进程根本没退出
很多插件注册了 onStartupFinished 或 onLanguage:python 这类激活事件,一旦触发就会常驻内存。点“Disable”只是阻止新加载,旧进程仍在跑——这是最常被忽略的坑。
正确操作必须包含三步:
- 先运行命令面板中的
Developer: Show Running Extensions,按 CPU% 排序,确认哪些插件真在跑 - 右键目标插件 →
Disable (For All Folders)(注意不是仅限当前工作区) - 必须完全关闭当前 VSCode 窗口(不是
Developer: Reload Window),再重新打开工作区
对 Python/TS 项目,还可手动清理残留:ps aux | grep -i "pyright\|tsserver\|python.*language",找到 PID 后 kill -9 [PID]。
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
files.watcherExclude 写错等于白配
VSCode 默认用 chokidar 递归监听整个工作区,遇到 node_modules(几万小文件)、dist、.git 目录时,inotify 事件会爆炸式触发,Node.js 子进程满载——你什么都没干,CPU 就稳定在 70%+。
关键点:
- 通配符必须是
"**/node_modules/**": true,写成*node_modules*、/node_modules/或*/node_modules/*全无效 - 配置必须加在项目根目录的
.vscode/settings.json中,不是用户级settings.json - 生效前提:关闭当前工作区,再重新打开;仅保存文件不触发重载监听逻辑
- 推荐完整配置:
"**/node_modules/**"、"**/dist/**"、"**/build/**"、"**/.git/**"、"**/*.log"
Linux/macOS 用户顺手检查:cat /proc/sys/fs/inotify/max_user_watches,若低于 524288,执行 sudo sysctl fs.inotify.max_user_watches=524288。
别让多个同类工具同时启动解析
ESLint + Prettier + TSLint + TypeScript Hero 四者共存,保存一个文件就触发四轮格式化+校验+类型检查,CPU 直接拉满。这不是插件本身有问题,而是它们的触发时机和范围重叠了。
实操建议:
- 把
eslint.run设为onSave,关掉onType实时检查 - 禁用
prettier.requireConfig或确保项目根目录有.prettierrc,避免插件反复探查配置 - GitLens 关掉
gitlens.codeLens.enabled和gitlens.hovers.enabled,内存可降 30%–50% - AI 类插件(如
tongyi lingma)默认会对整个工作区做代码索引,可在设置中关闭lingma.enableWorkspaceIndexing
真正麻烦的从来不是单个插件,而是多个插件在同一个事件(比如文件保存、语言激活)上同时响应——这种冲突不会报错,只会默默吃光 CPU。










