プロファイラ
ブラウザオートメーション中に Chrome DevTools でのパフォーマンスプロファイルをキャプチャします。 プロファイルを使用して、ページの遅延読み込み、高コストな JavaScript、レイアウトの乱れ、およびエージェントワークフローにおける他のパフォーマンスのボトルネックを診断します。
基本的な使い方
# プロファイリングの開始
agent-browser profiler start
# 操作の実行
agent-browser navigate https://example.com
agent-browser click "#button"
# 終了とプロファイルの保存
agent-browser profiler stop ./trace.json出力される JSON ファイルは、Chrome DevTools、Perfetto UI、または任意の Chrome Trace Event 形式を受け入れるツールに読み込むことができます。
コマンド
| コマンド | 説明 |
|---|---|
profiler start | パフォーマンスプロファイルの記録を開始する |
profiler start --categories <list> | カスタムトレースカテゴリで開始する |
profiler stop [path] | プロファイリングを終了し、ファイルに保存する |
トレースカテゴリ
--categories オプションには、カンマ区切りの Chrome トレースカテゴリリストを指定できます。
agent-browser profiler start --categories "devtools.timeline,v8.execute,blink.user_timing"デフォルトのカテゴリには devtools.timeline、v8.execute、blink、blink.user_timing、latencyInfo、renderer.scheduler、toplevel があり、さらに詳細な CPU プロファイリングやコールスタック分析用の複数の disabled-by-default-* カテゴリが含まれます。
一般的なカテゴリ
| カテゴリ | キャプチャ対象 |
|---|---|
devtools.timeline | 標準的な DevTools パフォーマンスイベント |
v8.execute | JavaScript 実行に費やされた時間 |
blink | レンダラーイベント(レイアウト、描画、スタイル) |
blink.user_timing | performance.mark() および performance.measure() の呼び出し |
latencyInfo | 入力から表示までの遅延 |
disabled-by-default-v8.cpu_profiler | サンプリングベースの JS CPU プロファイリング |
出力形式
出力は、Chrome Trace Event 形式の JSON ファイルです:
{
"traceEvents": [
{
"cat": "devtools.timeline",
"name": "RunTask",
"ph": "X",
"ts": 12345,
"dur": 100,
"pid": 1,
"tid": 1
}
],
"metadata": {
"clock-domain": "LINUX_CLOCK_MONOTONIC"
}
}metadata.clock-domain フィールドはホストプラットフォーム(Linux または macOS)を反映しています。Windows ではこのフィールドは省略されます。
プロファイルの表示
- Chrome DevTools -- パフォーマンスパネル > プロファイルの読み込み
- Perfetto -- https://ui.perfetto.dev/ (JSON ファイルをドラッグアンドドロップ)
- Trace Viewer -- 任意の Chromium ブラウザで
chrome://tracing
利用例
- ページ読み込みの分析 -- ナビゲーション時の遅延リソース、長時間タスク、レイアウトの変化を特定するためのプロファイリング
- インタラクションのプロファイリング -- クリック、フォーム入力などのユーザーアクションのコストを測定
- CI レグレッションチェック -- ビルドごとにプロファイルを取得し、時間経過とともにトレースデータを比較
- エージェントワークフローの最適化 -- エージェントフロー内のどのステップが最もコストが高いかを特定
制限事項
- Chromium ベースのブラウザ(Chrome、Edge)でのみ動作します。Firefox や WebKit ではサポートされていません。
- プロファイリング中はトレースデータがメモリに蓄積されます(最大 500 万件のイベントまで)。関心のある領域の後は、速やかにプロファイリングを停止してください。
- 終了時のデータ収集には 30 秒のタイムアウトがあります。ブラウザが応答しない場合、停止コマンドが失敗する可能性があります。
- 出力パスが指定されない場合、プロファイルは
agent-browserの一時ディレクトリ内に自動生成されたパスに保存されます。