performance - 使用带有 `--headless` 开关的 Chrome 来测量用户页面加载时间

标签 performance google-chrome chromium headless-browser

我正在尝试提高我的网络服务器的性能,并希望准确衡量用户加载页面所需的时间。我想象的方式是模拟来自用户的并发请求,并在我微调各种设置以获得最佳结果时跟踪页面加载时间的变化。

我想使用带有 --headless 的 Chromium 的最新快照。切换来衡量用户加载页面需要多长时间,但由于这是一个相对较新的功能,我不熟悉 all the possible switches ,如果有人可以分享他们将运行的内容以获得准确的结果,我将不胜感激。

我唯一的限制是我无法注入(inject)脚本或以其他有助于此类测试的方式修改响应内容。

最佳答案

这似乎没问题。截屏显示页面似乎已加载并在第一个请求和后续请求之间获得相似的结果,所以我假设缓存确实被禁用。

time chromium \
  --headless \
  --disk-cache-dir=/dev/null \
  --disable-gpu \
  --download-whole-document \
  --deterministic-fetch \
  https://www.stackoverflow.com

笔记
  • 这不会在初始请求中预热 DNS 条目,因此最好丢弃第一个结果
  • --disable-gpu标志不是必需的,但有 a reported error使用当前版本
  • 打开远程调试端口可能有助于删除对歪曲结果的 3rd 方源的引用,或者更好地控制被认为是完全加载的页面,比如等待一些脚本来获取额外的资源,但这有点超出我的头
  • 关于performance - 使用带有 `--headless` 开关的 Chrome 来测量用户页面加载时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41338241/

    相关文章:

    java - BlobstoreServiceserve() 不提供内容长度

    javascript - FCM 通知适用于 Chrome 但不适用于 Firefox

    node.js - Page.startScreencast Chrome DevTools 协议(protocol)低 FPS 问题

    chromium - GNOME Shell 集成扩展正在运行,未检测到 native 主机连接器?

    javascript - Jquery JSON .each() 在 Google Chrome 中不起作用

    node.js - 在Ubuntu Server上 puppeteer/ Chrome 失败

    performance - 转义下划线时 Postgres 索引行为不一致

    java - 同一个 BufferedImage 对象加载多个图像时出现内存泄漏

    .net - 编译器警告会增加构建时间吗?

    javascript - 为什么这个正则表达式需要这么长时间才能执行?