【问题标题】:browsermob har file precisionbrowsermob har文件精度
【发布时间】:2016-10-09 02:58:50
【问题描述】:

我正在使用带有 selenium 的 browsermob 创建一个 har 文件,然后尝试分析该文件。查看文件我得到的时间如下: 'startedDateTime': '2016-05-31T14:37:06.752-06:00' 这很好,但我希望更精确,如果可能的话,精确到微秒。

我可以在来自 google chrome 开发工具的 har 文件中看到它至少在那里是可能的。

我可以在 broswermob 或 selenium 中设置一个设置以获得额外的精度或以其他方式捕获这种额外的精度吗?

【问题讨论】:

  • 为什么需要精确到微秒?
  • @ScottMikutsky,为什么堆栈溢出的我们关心为什么在这里提出问题的人有时需要他们要求的许多奇怪的东西?
  • @ScottMikutsky 这不一定是需要它更多的是一个很好的。我说微秒作为将精度扩展到其所在位置的示例。精度越高越好,如果我能达到纳秒,那也很棒。重点是在使用 browsermob 生成 har 文件时,有没有办法获得比毫秒更高的精度?

标签: selenium har browsermob


【解决方案1】:

HAR spec 指定pagesentries 对象的startedDateTime 为:

startedDateTime [string] - 请求开始的日期和时间戳 (ISO 8601 - YYYY-MM-DDThh:mm:ss.sTZD)。

ss.s 部分有点模棱两可,但规范中给出的示例仅达到千分之一秒。所以 BrowserMob 代理只创建千分之一的条目,以避免破坏 HAR 阅读器。

大于毫秒的精度可能会在计时中引入大量额外的噪音。与 HTTP 请求的“实际”性能无关的各种事物(例如 CPU 调度)都可能导致纳秒的差异。当然,毫秒也会发生这种情况,但是你得到的越精确,时间就越不准确。

最终,startedDateTime 真正指示的是系统时钟报告给由 BMP 产生的某个 CPU 线程的时间,该线程在网络接口接收到 HTTP 请求的最后一个数据包后的某个不确定时间启动,由OS,由 JVM 处理,由 netty 解码,异步发生,没有时间保证。它只应被视为“合理”的近似值。 FWIW,这也是 Chrome 可以做出的唯一保证。

【讨论】:

    猜你喜欢
    • 2016-08-19
    • 1970-01-01
    • 2019-02-02
    • 1970-01-01
    • 1970-01-01
    • 2019-10-09
    • 1970-01-01
    • 2019-12-10
    • 2017-08-22
    相关资源
    最近更新 更多