应分别针对 Node 子进程、VSCode 主进程和 Extension Host 进行优化:子进程加 --max-old-space-size=4096;主进程用 code --disable-extensions --disable-gpu --max-memory=4096 . 启动;Extension Host 需禁用插件后重启窗口,并正确配置 files.watcherExclude。

npm run 崩溃报 JavaScript heap out of memory 怎么办
这是 Node 子进程堆内存超限,和 VSCode 主界面完全无关。错误信息 FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory 出现在终端里执行 npm run dev 或 npm run build 时,说明 vue-cli-service、webpack 或 ts-node 启动的独立 Node 进程爆了。
- 直接改
package.json的scripts字段,在命令前加node --max-old-space-size=4096,例如:"dev": "node --max-old-space-size=4096 ./node_modules/.bin/vue-cli-service serve" - Windows 下必须用
cross-env注入环境变量:"dev": "cross-env NODE_OPTIONS=--max-old-space-size=4096 vue-cli-service serve" - 别装
increase-memory-limit—— 它只是自动往package.json写参数,还可能覆盖你手动配的值 - 如果项目含大量
.d.ts或嵌套极深的依赖,可先试--max-old-space-size=3072;超过4096很少必要,反而会掩盖真正的问题(比如没排除node_modules)
VSCode 启动就卡死或白屏怎么办
这是 Electron 主进程(渲染层)RSS 内存飙到 3GB+ 导致的 OOM,不是插件问题,是默认行为:Electron 不设 V8 堆上限,且文件监听器无差别注册所有子目录句柄。
- 绝对不要用桌面图标、Dock 或 Finder 双击启动 —— 它绕不开默认参数;必须在终端执行:
code --disable-extensions --disable-gpu --max-memory=4096 . -
--max-memory=4096是 Electron 12+ 支持的参数,单位 MB,只作用于主进程 -
--disable-extensions能跳过 GitLens、ESLint 等语言服务预热,省掉 500MB+ 内存 -
--disable-gpu在 macOS 外接显示器或 Intel 核显下可减少 200–500MB 渲染内存驻留 - Windows 用户注意:
set NODE_OPTIONS=--max-old-space-size=4096对 GUI 启动无效,那是给 Node 子进程用的
保存大文件或调试时 Extension Host 内存不降怎么查
Extension Host 是独立进程,所有插件共享同一内存空间,泄漏不会自动回收。禁用插件后不重启窗口,旧进程还在跑。
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
- 按
Ctrl+Shift+P(macOS 是Cmd+Shift+P),运行Developer: Open Process Explorer,展开extensionHost节点,按 Memory 列排序,重点关注带具体项目路径的条目 - 在
.vscode/settings.json中加:"extensions.experimental.affinity": { "*": 1 },强制所有扩展跑在独立子进程中,避免一个插件泄漏拖垮全部 - 重点关掉 ESLint 和 Prettier 对大文件的监听:配置
"eslint.validate": ["javascript", "typescript"],显式排除.log、.jsonl等后缀 - 禁用后必须关闭整个 VSCode 窗口再重开;否则旧 Extension Host 进程 PID 不变,内存照涨不落
files.watcherExclude 配了还是吃内存?
配错等于没配。VSCode 默认用 chokidar 监听工作区所有子目录,node_modules 里几万个文件,每个都注册一个内核 inotify 句柄——这些句柄几乎不回收,内存只涨不跌。
- 必须写在项目根目录的
.vscode/settings.json,用户级设置在多工作区下 100% 失效 - 规则必须带双星号和尾部斜杠:
"**/node_modules/**": true✅,"**/node_modules": true❌(VSCode 忽略) - Python 项目至少加:
"**/node_modules/**"、"**/.venv/**"、"**/venv/**"、"**/.git/**" - 用了 pnpm?补上
"**/node_modules/.pnpm/**": true;用了 turborepo?加上"**/.turbo/**": true -
search.exclude只影响搜索结果,完全不阻止监听器创建——它和files.watcherExclude不是一回事
真实内存压力来自多个独立进程:主进程、Extension Host、构建脚本。只调一个参数,大概率还会崩。最易被忽略的是 files.watcherExclude 的格式细节和生效位置,以及 Extension Host 进程未彻底重启带来的“假禁用”。

















