You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Chrome的max_old_space_size参数是否已停止生效?

Chrome的max_old_space_size参数是否已停止生效?

没错,从Chrome 111版本开始,--js-flags="--max_old_space_size=8196"这种启动参数的用法确实不再像之前那样生效了,不少开发者都遇到了这个问题。

先回顾下之前的可行方案:早些时候,我们可以给Chrome或基于Chromium的应用添加特定启动参数,突破默认的2GB或4GB堆内存限制,典型的启动命令是:

chrome.exe --js-flags="--max_old_space_size=8196"

当时还能通过DevTools的性能监视器(Performance Monitor)来验证参数是否生效,查看内存上限是否成功提升。

至于为什么现在失效了,核心原因是Chrome团队在新版本中调整了V8引擎的内存管理逻辑:

  • 桌面端Chrome现在会根据系统可用内存自动动态调整堆内存上限,不再优先遵循手动设置的max_old_space_size参数
  • 这个参数现在仅对非沙箱进程生效,而Chrome默认启用沙箱机制,普通启动方式下参数无法作用到核心进程

如果确实需要手动指定内存上限,目前可以这样操作:

  • 先关闭所有Chrome进程(确保没有后台残留)
  • 使用带--no-sandbox的启动命令,示例如下:
chrome.exe --no-sandbox --js-flags="--max_old_space_size=8196"

⚠️ 注意:--no-sandbox会关闭Chrome的沙箱安全防护,存在安全风险,仅建议在测试环境或完全可信的场景下使用。

另外,如果你开发的是Electron这类基于Chromium的应用,现在需要在应用主进程的配置中单独设置内存参数,而不是依赖外部启动命令了。

备注:内容来源于stack exchange,提问作者kiewic

火山引擎 最新活动