如何使用Chrome的调试器协议从时间戳中获取walltime?

时间:2016-09-21 22:01:23

标签: google-chrome debugging google-chrome-extension chromium javascript-debugger

我一直在使用Chrome debugger protocol部分构建Chrome扩展程序。 Network domain中的某些事件(如requestWillBeSent)包含“时间戳”以及“wallTime”。

自1970年格式以来,壁挂时间是常规秒数,但时间戳以秒为单位,但不清楚0的位置,而且许多事件没有wallTime,所以我真的试图找出如何从timeStamp派生wallTime。 基于this,我认为它基于navigationStart值但是没有根据扩展程序的navigationStart的背景页面或事件发起navigationStart的页面产生正确的日期。

是否有可能使用时间戳来获取wallTime或者我运气不好?

1 个答案:

答案 0 :(得分:3)

根据InspectorNetworkAgent.cpp中的源代码:

  • wallTimecurrentTime()(正常系统时间)
  • timestampmonotonicallyIncreasingTime()

    在Windows上,它基于自系统启动以来经过的毫秒数,并且您无法从扩展程序中获取该信息。

    在POSIX系统(例如Linux)上,使用CLOCK_MONOTONIC模式中的clock_gettime,表示从某个未指定的起点开始的单调时间。

    根据time.h中的源代码:

      

    TimeTicks和ThreadTicks表示大部分时间的抽象时间   递增,用于测量持续时间。在内部,他们是   用微秒表示。 它们无法转换为人类可读的   时间,但保证不会减少(与Time类不同)。注意   TimeTicks可能会停滞不前" (例如,如果计算机被暂停),和   ThreadTicks将会停滞不前"每当线程被解除调度时   操作系统。