V8 のトレース
V8 はトレースをサポートしています。Chrome のトレースシステムを介して V8 が Chrome に埋め込まれている場合は、自動的に動作します。しかし、スタンドアロンの V8 または Default Platform を使用するエンベッダでも有効にすることができます。トレースビューアの詳細については、こちらを参照してください。
d8
内のトレース #
トレースを開始するには、--enable-tracing
オプションを使用します。V8 は、Chrome で開くことができる v8_trace.json
を生成します。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 Tracing のものと互換性がありますが、含まれるカテゴリリストの正規表現はサポートしていません。また、V8 は除外カテゴリリストを必要としないため、V8 のトレース設定ファイルは Chrome Tracing で再利用できますが、トレース設定ファイルに正規表現が含まれている場合は V8 のトレースで Chrome のトレース設定ファイルは再利用できません。そのほか、V8 は除外カテゴリリストを無視します。
トレースでランタイムコール統計を有効にする #
ランタイムコール統計(RCS)を取得するには、次の 2 つのカテゴリを有効にしてトレースを記録してください: v8
と disabled-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
という名前のスライスを検索します。統計は下部のパネルに表示されます。複数のスライスを選択すると、マージされたビューが作成されます。
