VSCode内存溢出主因是主进程堆无限制、Extension Host泄漏及files.watcherExclude配置错误;须终端启动加--max-memory=4096、禁用插件后彻底重启窗口、并在项目.vscode/settings.json中精准配置"/node_modules/":true等规则。

VSCode运行代码内存溢出,90%不是你写的代码问题,而是编辑器自身进程失控或插件监听失控导致的。直接加 --max-memory=4096 能压住主进程,但不配 files.watcherExclude、不杀干净 Extension Host,照样爆。
主进程内存飙高:必须终端启动并限堆
VSCode 主进程(Electron 渲染进程)默认不限 V8 堆大小,打开大项目或一堆插件后,RSS 很快冲到 2.5GB+ 触发 OOM。桌面图标或 Dock 启动绕不开默认参数,无效。
- 必须用终端执行:
code --disable-extensions --disable-gpu --max-memory=4096 . -
--max-memory单位是 MB,只作用于主进程,不影响 Extension Host 或子进程 -
--disable-gpu在 macOS 外接显示器或 Intel 核显下可省 200–500MB 内存驻留 - Windows 用户别设
NODE_OPTIONS=--max-old-space-size=4096——那是给 Node 子进程用的,对主进程完全没反应
Extension Host 内存卡在 500MB 不降:得杀,不能 reload
Extension Host 是独立进程,所有插件共享同一内存空间。泄漏不会自动回收,禁用插件不重启窗口,旧进程还在跑。
- 先运行命令:
Developer: Show Running Extensions,看每个插件实时内存估算(不是启用状态) - 重点关注
GitLens、esbenp.prettier-vscode、ms-python.python——它们常驻监听器或缓存类型信息 - 禁用后必须关闭整个 VSCode 窗口再重开;否则旧 Extension Host 进程 PID 不变,内存照涨不落
- 真卡死时,用
Developer: Open Process Explorer找到对应 PID,系统级kill -9 [PID]强杀
files.watcherExclude 配了为啥还吃内存?位置和写法全错
VSCode 文件监听器(chokidar)一旦注册 inotify 句柄,Linux/macOS 上几乎不释放,内存线性增长。配错等于没配。
- 必须写在项目根目录的
.vscode/settings.json,用户级或全局设置在多工作区下 100% 失效 - 规则必须带双星号和尾部斜杠:
"**/node_modules/**": true✅,"**/node_modules": true❌(VSCode 忽略) - Python 项目还要加:
"**/.venv/**": true、"**/venv/**": true、"**/__pycache__/**": true - 漏掉
"**/.git/**": true?GitLens 会持续监听松散对象,Extension Host RSS 很快卡在 600MB+ 不回落
Python 项目特别容易踩坑:别混用 TypeScript 参数
VSCode 运行 Python 时内存溢出,主因是 ms-python.python 和 Pylance 默认加载全部类型信息、缓存未限制、监听器失控。
-
typescript.tsserver.maxMemory对 Python 完全无效,误配只会掩盖真实瓶颈 -
python.analysis.extraPaths是关键——若指向整个venv/lib/python3.x/site-packages,会强制解析成千上万个包,内存直接冲到 1.2GB+ - 正确做法:
"python.analysis.autoSearchPaths": false+ 显式只设必要路径,例如"python.analysis.extraPaths": ["./src"] - 大项目建议关闭全量类型检查,或换用轻量
pylsp
最顽固的内存爬升来自 inotify 句柄泄漏,它不报错、不崩溃,只默默吃光 RAM。配 files.watcherExclude 是底线,不是可选项;杀 Extension Host 进程是动作,不是点一下 reload 就完事。



















