最稳方案是用命令行启动:code --read-only --disable-extensions "/path/to/huge-file.log",实测800MB文件响应从12秒降至0.8秒、内存从1.4GB降至180MB;必须用英文双引号包裹含空格或中文的路径,且不能双击或拖拽打开,否则绕过优化。

Mac 上 VSCode 打开超大文件(如几百 MB 日志、JSON 或 dump 文件)时卡死或弹出 FATAL ERROR: Ineffective mark-compacts near heap limit,不是内存不足,而是它默认把整份内容塞进 V8 堆、同步跑语法高亮+折叠+语言服务+行号计算——四件事全挤在主线程上,直接堵死。
用命令行只读启动(最稳方案)
这一步绕过所有扩展加载、语言服务器连接、GPU 渲染和折叠树构建,实测 800MB 文件响应从 12 秒降至 0.8 秒,内存从 1.4GB 降到 180MB。
打开终端,执行:code --read-only --disable-extensions "/path/to/your/huge-file.log"
路径含中文或空格必须用英文双引号包裹,否则命令失败;【不能双击图标或拖拽进窗口,这两种方式完全绕过优化逻辑】
成功后左下角状态栏会显示 Large file mode (read-only) —— 若只显示 Plain Text 或 Log,说明没生效,先关掉所有标签页再重试。
手动触发内置大文件模式
VSCode 1.84+ 内置了流式读取机制,但不会自动启用,必须手动调用命令面板触发,且仅对 Plain Text 或无语言服务的文件生效。
方法一:按 Cmd+Shift+P 打开命令面板 → 输入 File: Open Large File Optimized → 回车 → 选择目标文件
方法二:先用普通方式打开文件 → 按 Cmd+K Cmd+M → 输入 plaintext 回车 → 强制切换为纯文本模式,此时折叠、验证、格式化全部失效,但搜索和跳行仍可用
注意:【editor.largeFileOptimizations 设为 true 只是“允许”启用,并非“强制开启”,必须同时满足:文件超过 files.maxMemoryForLargeFilesMB(默认 400MB)且语言模式为 Plain Text】
配置工作区级监听排除规则
即使不打开大文件,VSCode 默认也会为整个工作区递归监听 node_modules/.git/dist 等目录,每个小文件都注册一个 inotify 句柄——这些句柄几乎不释放,内存随文件数线性增长,最终拖垮主进程。
第一步:在项目根目录创建或编辑 .vscode/settings.json
第二步:粘贴以下配置并保存:
{
"files.watcherExclude": {
"**/node_modules/**": true,
"**/.git/**": true,
"**/dist/**": true,
"**/build/**": true,
"**/.turbo/**": true
}
}
⚠️ 规则末尾必须带 /**,写成 "**/node_modules" 将被 VSCode 忽略;全局设置中的相同配置在多工作区下 100% 失效。
第三步:关闭当前 VSCode 窗口,重新用 code . 启动该工作区,配置才生效。


















