browsermob har文件精度
browsermob har file precision
我正在使用带有 selenium 的 browsermob 创建一个 har 文件,然后尝试分析该文件。查看文件我得到的时间如下:
'startedDateTime': '2016-05-31T14:37:06.752-06:00'
这很棒,但我想要更精确,如果可能的话精确到微秒。
我可以在来自 google chrome 开发工具的 har 文件中看到它至少在那里是可能的。
broswermob 或 selenium 中是否有我可以设置的设置以获得额外的精度或以其他方式捕获此额外精度?
HAR spec 将 pages
和 entries
对象的 startedDateTime 指定为:
startedDateTime [string] - Date and time stamp of the request start (ISO 8601 - YYYY-MM-DDThh:mm:ss.sTZD).
ss.s
部分有点模棱两可,但规范中给出的示例只输出到千分之一秒。所以 BrowserMob Proxy 只创建千分之一的条目,以避免破坏 HAR 阅读器。
大于毫秒的精度可能会在计时中引入很多额外的噪音。纳秒的差异可能是由与 HTTP 请求的 "actual" 性能无关的各种事物(例如 CPU 调度)引起的。当然,毫秒也会发生这种情况,但是你得到的越精确,计时就越不准确。
最终,startedDateTime 真正指示的是系统时钟向 BMP 生成的某个 CPU 线程报告的时间,该线程在 HTTP 请求的最后一个数据包收到后的某个不确定时间启动网络接口,由 OS 处理,由 JVM 处理,由 netty 解码,这是异步发生的,没有时间保证。只能将其视为 "reasonably" 的近似值。 FWIW,这也是 Chrome 唯一的保证。
我正在使用带有 selenium 的 browsermob 创建一个 har 文件,然后尝试分析该文件。查看文件我得到的时间如下: 'startedDateTime': '2016-05-31T14:37:06.752-06:00' 这很棒,但我想要更精确,如果可能的话精确到微秒。
我可以在来自 google chrome 开发工具的 har 文件中看到它至少在那里是可能的。
broswermob 或 selenium 中是否有我可以设置的设置以获得额外的精度或以其他方式捕获此额外精度?
HAR spec 将 pages
和 entries
对象的 startedDateTime 指定为:
startedDateTime [string] - Date and time stamp of the request start (ISO 8601 - YYYY-MM-DDThh:mm:ss.sTZD).
ss.s
部分有点模棱两可,但规范中给出的示例只输出到千分之一秒。所以 BrowserMob Proxy 只创建千分之一的条目,以避免破坏 HAR 阅读器。
大于毫秒的精度可能会在计时中引入很多额外的噪音。纳秒的差异可能是由与 HTTP 请求的 "actual" 性能无关的各种事物(例如 CPU 调度)引起的。当然,毫秒也会发生这种情况,但是你得到的越精确,计时就越不准确。
最终,startedDateTime 真正指示的是系统时钟向 BMP 生成的某个 CPU 线程报告的时间,该线程在 HTTP 请求的最后一个数据包收到后的某个不确定时间启动网络接口,由 OS 处理,由 JVM 处理,由 netty 解码,这是异步发生的,没有时间保证。只能将其视为 "reasonably" 的近似值。 FWIW,这也是 Chrome 唯一的保证。