vscode 在 m 系列 mac 上发热耗电快,主因是 rosetta 2 模拟运行导致调度异常;应取消“使用 rosetta 打开”,改用 arm64/universal 版本,并排查插件、文件监听、gpu 加速等配置。

确认 VSCode 是否在 Rosetta 下运行
VSCode 在 M 系统上发热、耗电快,大概率是因为它被强制跑在 x86_64 模拟层里。Rosetta 2 本身不崩溃,但 Electron 渲染线程调度异常、GPU 调用错乱,会导致风扇狂转、CPU 占用飙高,甚至启动一闪即逝。
右键 Visual Studio Code.app →「显示简介」→ 检查「使用 Rosetta 打开」是否勾选 →务必取消勾选
打开终端执行:arch -arm64 code --verbose,观察是否能稳定启动。如果可以,说明问题就在架构错配;如果仍闪退或卡死,再往下排查。
别信“官网下载就一定对”——去 code.visualstudio.com/Download 页面,认准标有 ARM64 或 Universal 的 macOS 版本。x64 版本从 2025 年底起已明确不推荐用于 M 系列 Mac。
禁用或重装插件:头号耗电元凶
插件是发热和耗电的头号元凶,尤其是 ms-python.python、ms-vscode.cpptools、esbenp.prettier-vscode 这类语言服务插件。它们一启动就 spawn 子进程,路径或 Node 版本稍有不匹配,主进程直接退出,连错误页都不弹。
最快验证方式是清空插件目录:rm -rf ~/.vscode/extensions
删完立刻运行:code --verbose,观察最后几行:
- 如果不再报
Cannot read property 'activate' of undefined或卡在 Splash 阶段,基本锁定是插件问题 - 重装时每次只装一个,重启一次 VSCode;别图快全装上再测,否则根本分不清谁在拖后腿
优化文件监听与索引范围
大型项目(尤其含 node_modules、dist、.git)会让 VSCode 启动大量 watcher 和搜索进程,持续拉高 CPU 和 I/O,导致电池快速耗尽。
在工作区或用户 settings.json 中添加以下配置:
{
"files.exclude": {
"**/.git": true,
"**/node_modules": true,
"**/dist": true,
"**/build": true,
"**/coverage": true,
"**/.cache": true,
"**/.next": true,
"**/tmp": true
},
"search.exclude": {
"**/node_modules": true,
"**/package-lock.json": true,
"**/yarn.lock": true,
"**/pnpm-lock.yaml": true
},
"files.watcherExclude": {
"**/.git/objects/**": true,
"**/node_modules/**": true,
"**/dist/**": true,
"**/build/**": true
}
}
注意:files.watcherExclude 是关键,它直接禁用内核级文件变更监听,大幅降低 fsnotify 压力;而 search.exclude 只影响全局搜索,不减少后台扫描负担。
关闭 GPU 加速与 WebAssembly 渲染器
某些 macOS 图形栈更新后,VSCode 默认启用的 GPU 加速反而导致合成线程卡顿,触发 CPU 补偿性飙升;1.85+ 引入的 WebAssembly 文本渲染器在 M 系列芯片上也可能因内存争抢引发主线程延迟。
临时验证效果:
- 终端执行:
code --disable-gpu,观察风扇是否明显收敛 - 若有效,永久生效:设置中搜索
window.disableGPUAcceleration,勾选启用 - 再打开命令面板,执行
Preferences: Configure Runtime Arguments,在argv.json中添加:"disable-webassembly-text-renderer": true
这两个开关对 M 系列芯片实际渲染质量影响极小,但对功耗控制非常敏感——尤其在合盖休眠后唤醒、多窗口切换等场景下,容易被忽略。











