2

我一直在使用部分Chrome debugger protocol構建Chrome擴展。 Network domain中的某些事件(如requestWillBeSent)包含「時間戳記」以及「wallTime」。如何使用Chrome的調試器協議從時間戳中獲取walltime?

walltime是自1970年格式以來的常規秒數,但時間戳以秒爲單位,但其不清楚其0的位置,並且許多事件沒有wallTime,所以我真的試圖弄清楚如何導出wallTime來自timeStamp。 基於this我相信是基於navigationStart值,但是沒有根據擴展的navigationStart的背景頁面或事件產生navigationStart的頁面生成正確的日期。

是否有可能使用時間戳來獲取wallTime還是我運氣不好?

+0

它您同時有'timestamp'和'wallTime'作爲數量測量,然後確定應該由'而輕易獲得的'timestamp'的零基準的同時,使用兩個秒產生zeroRef = wallTime - timestamp'(假設'timestamp'的零引用在'wallTime'的零引用之後)。如果該零引用可以擴展到其他有時間戳的實例,則取決於時間戳是否具有相同的引用。我們不能對此發表評論,因爲您尚未說明您正在討論哪些功能以及*您如何使用它們*。 – Makyen

回答

3

根據源代碼InspectorNetworkAgent.cpp

  • wallTimecurrentTime()(正常的系統時間)
  • timestampmonotonicallyIncreasingTime()

    在Windows上它是基於由於已經經過的毫秒數系統已啓動,您無法從擴展程序獲取該信息。

    使用CLOCK_MONOTONIC模式的POSIX系統(例如Linux)clock_gettime,它表示從某個非指定起點開始的單調時間。

    根據源代碼time.h

    TimeTicks和ThreadTicks表示一個抽象的時間,該時間的大部分時間 遞增的,用於測量時間的持續時間。在內部,它們是以微秒錶示的 。 它們無法轉換爲人類可讀的 時間,但保證不會減少(與Time類不同)。請注意, TimeTicks可能「靜止不動」(例如,如果計算機處於暫停狀態),並且只要線程已被操作系統的 取消調度,ThreadTicks就會「靜止不動」。

+0

非常感謝!所以答案(如果有人不同意,我將這個未標記爲*一天中的答案)作爲我的備份計劃:使用這兩種方法找到一個事件,並使用它來索引wallTime來自該時間戳的內容。 – edibleEnergy

相關問題