追蹤 V8

V8 提供追蹤支援。當 V8 透過 Chrome 追蹤系統嵌入在 Chrome 中時,它會自動運作。但您也可以在任何獨立的 V8 中啟用它,或在使用預設平台的嵌入程式中啟用它。您可以在這裡找到更多關於追蹤檢視器的詳細資料。

d8 中追蹤 #

若要開始追蹤,請使用 --enable-tracing 選項。V8 會產生一個 v8_trace.json,您可以在 Chrome 中開啟它。若要在 Chrome 中開啟它,請前往 chrome://tracing,按一下「載入」,然後載入 v8-trace.json 檔案。

每個追蹤事件都與一組類別相關聯,您可以根據類別啟用/停用追蹤事件的記錄。僅使用上述標記,我們只會啟用預設類別(一組開銷較低的類別)。若要啟用更多類別並更精細地控制不同的參數,您需要傳遞一個設定檔。

以下是設定檔 traceconfig.json 的範例

{
"record_mode": "record-continuously",
"included_categories": ["v8", "disabled-by-default-v8.runtime_stats"]
}

使用追蹤和追蹤設定檔呼叫 d8 的範例

d8 --enable-tracing --trace-config=traceconfig.json

追蹤設定檔格式與 Chrome 追蹤的格式相容,但是,我們不支援包含類別清單中的正規表示式,而且 V8 不需要排除類別清單,因此 V8 的追蹤設定檔可以在 Chrome 追蹤中重複使用,但如果您無法重複使用 Chrome 追蹤設定檔在 V8 追蹤中,如果追蹤設定檔包含正規表示式,此外,V8 會忽略排除類別清單。

在追蹤中啟用執行時期呼叫統計 #

若要取得執行時期呼叫統計 (RCS),請記錄啟用以下兩個類別的追蹤:v8disabled-by-default-v8.runtime_stats。每個頂層 V8 追蹤事件都包含該事件期間的執行時期統計。透過在 trace-viewer 中選取任何這些事件,執行時期統計資料表會顯示在下方的面板中。選取多個事件會建立一個合併檢視。

在追蹤中啟用 GC 物件統計 #

若要在追蹤中取得 GC 物件統計資料,您需要收集已啟用 disabled-by-default-v8.gc_stats 類別的追蹤,您也需要使用下列 --js-flags

--track_gc_object_stats --noincremental-marking

trace-viewer 中載入追蹤後,搜尋名為 V8.GC_Object_Stats 的區段。統計資料會顯示在下方的面板中。選取多個區段會建立一個合併的檢視。