VSCode高CPU/内存占用90%以上源于扩展、文件监听或语言服务器失控,应优先用code --status定位Extension Host和Search进程,禁用扩展需重启窗口,并配置files.watcherExclude防止inotify泄漏。
VSCode 占用 CPU 或内存过高,90% 以上情况不是编辑器本身问题,而是某个扩展、文件监听或语言服务器在后台失控运行。直接查进程比瞎调设置快得多。
用
快速定位高占用进程
别打开任务管理器看“Code Helper”——它只是壳。真正该盯的是 Extension Host 和 Search 进程。在终端执行
,会列出所有子进程的 PID、CPU% 和内存占用。重点关注:
Extension Host 进程 CPU > 60% 且持续不降:大概率是某个插件在轮询或解析失败后卡死
Search 进程内存 > 300MB:说明
(RipGrep)正在扫描
或符号链接目录
Renderer 进程异常高 CPU:可能是 GPU 渲染异常,或某段语法高亮逻辑陷入死循环
记下高占用进程的 PID,再用
(macOS/Linux)或任务管理器“详细信息”页查看完整命令行,能直接看到是哪个扩展启动的子进程(比如
或
)。
禁用扩展不能只点“Disable”,必须重启窗口
很多插件注册了
或
等激活事件,一旦触发就会常驻内存,禁用操作只是阻止新加载,旧进程不会退出。
先运行命令面板中的
,确认哪些插件真在跑
右键目标插件 →
,然后
完全关闭当前 VSCode 窗口
(不是重载),再重新打开工作区
对 Python/TypeScript 项目,可手动清理语言服务器残留:
,找到 PID 后
避免同时启用多个同类工具:比如
+
+
三者共存,极易触发重复解析
不加
就等于放任 inotify 泄漏
VSCode 默认递归监听整个工作区,遇到
(几万小文件)、
、
目录时,内核级 inotify 句柄会持续增长且几乎不回收,这是最隐蔽的内存爬升来源。
VSCode 1.118
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
下载
在项目根目录的
中添加:
注意:
和
是两回事,后者只影响搜索结果,前者才真正关闭文件系统监听。如果项目含大量 JSON/YAML 配置文件,还可加上
防止自动格式化插件反复触发。
比任何插件都准
这个内置面板比第三方性能插件更可靠,因为它直接读取 VSCode 多进程架构的真实状态。打开后重点看三列:
:持续 > 25% 的 Extension Host 子进程,基本就是问题源
:Extension Host 超 500MB 或 Search 超 300MB,就要怀疑泄漏或误索引
:识别出
、
、
等语言服务进程,方便针对性重启
排查完别忘了检查
是否被意外写入了调试参数(如
),这类参数会让扩展主机长期开启调试代理,显著拖慢响应。
真正难搞的从来不是配置项,而是那些“看起来已禁用却还在后台跑着”的扩展进程,以及
没配全导致的 inotify 句柄泄漏——这两点最容易被忽略,也最常让优化半途而废。
code --statuscode --statusrg.exenode_modulesps -p [pid] -o args=esbenp.prettier-vscodems-python.pythononStartupFinishedonLanguage:pythonDeveloper: Show Running ExtensionsDisable (For All Folders)ps aux | grep -i "pyright\|tsserver\|python.*language"kill -9 [PID]ESLintTSLintTypeScript Herofiles.watcherExcludenode_modulesdist.git.vscode/settings.json{
"files.watcherExclude": {
"**/node_modules/**": true,
"**/dist/**": true,
"**/build/**": true,
"**/.git/**": true
}
}files.watcherExcludesearch.exclude"**/*.json": trueDeveloper: Open Process ExplorerCPU %MemoryProcess Typecpptools-srvpyrighttsserverargv.json--inspect-extensionsfiles.watcherExclude