You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用--headless=new时CPU占用过高,求Serenity-BDD环境下优化方案

优化Chrome新无头模式(--headless=new) CPU占用的方案

一、精简Chrome启动参数

移除无效或冗余参数,添加资源限制类参数,减少不必要的进程和渲染开销:

  • 移除--start-maximized:新无头模式下该参数不生效,反而可能触发额外渲染逻辑
  • 移除--test-type:旧版测试标记,新无头模式无需加载相关冗余模块
  • 添加--single-process:强制Chrome以单进程模式运行(测试场景下稳定性足够,可大幅减少进程数量)
  • 添加--disable-background-networking:关闭后台网络活动,降低后台CPU消耗
  • 添加--disable-features=VizDisplayCompositor:禁用可视化合成器,减少GPU相关的CPU占用
  • 添加--low-end-device-mode:模拟低端设备,限制Chrome的CPU和内存使用

调整后的参数示例:

chrome.switches=--headless=new;--disable-dev-shm-usage;--no-sandbox;--disable-download-notification;--ignore-certificate-errors;--disable-popup-blocking;--disable-default-apps;--disable-extensions-file-access-check;--incognito;--disable-infobars;--disable-gpu;--single-process;--disable-background-networking;--disable-features=VizDisplayCompositor;--low-end-device-mode

二、优化Serenity-BDD的浏览器管理策略

  • 启用浏览器复用:在配置文件中添加serenity.browser.reuse=true,让多个测试用例共用同一个浏览器实例,避免频繁启动新进程
  • 降低并行测试线程数:如果开启了并行测试,根据CPU核心数调整线程数,比如4核CPU设置serenity.parallel.count=2,减少同时运行的浏览器进程数量
  • 强制清理残留进程:在测试套件的前置/后置钩子中添加driver.quit()逻辑,确保测试结束后彻底关闭浏览器,避免僵尸进程占用资源

三、限制Chrome进程数量

添加--renderer-process-limit=1参数,将渲染进程数量限制为1,避免单条测试中因页面元素、iframe等启动多个渲染进程,进一步降低CPU占用

四、系统层面资源优化

  • 关闭当前系统中无关的后台程序,释放CPU、内存资源
  • 降低Chrome进程优先级:Windows下在任务管理器右键Chrome进程,设置优先级为「低于标准」;Linux/macOS可通过renice命令调整进程优先级,减少Chrome对CPU资源的抢占

内容的提问来源于stack exchange,提问作者Tamas Demeny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 09:02:30