> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/workflows/ja/gaido/developer-guide/profiling.md).

# ワークフロープロファイリング

プロファイリングを有効にすると、Workflow の実行時間を測定し、パフォーマンスのボトルネックを特定できます。プロファイリングのトレースは、可視化のために Chrome の標準トレースツールと互換性があります。

## サンプル Workflow

このガイドのスクリーンショットでは、以下のワークフローを例として使用しています。2回の物体検出、動的クロッピング、Google Gemini 呼び出し、そしていくつかの可視化ステップが含まれます:

<figure><img src="/files/a0907cd1fddbb2b34b845df65581f2c9ee34f122" alt="Example workflow in the Roboflow editor"><figcaption><p>以下のプロファイリング用スクリーンショットで使用されているサンプル Workflow</p></figcaption></figure>

## Inference SDK を使ったプロファイリング

HTTP クライアント経由でワークフローを実行する際にプロファイリングを有効にするには、まず self-hosted を実行する必要があります [推論サーバー](https://docs.roboflow.com/deployment/self-hosted/inference-server) と `ENABLE_WORKFLOWS_PROFILING=True` 環境変数です。その後、以下を設定することで HTTP クライアント経由でワークフローを実行する際にプロファイリングを有効にできます: `enable_profiling=True`:

```python
from inference_sdk import InferenceHTTPClient

client = InferenceHTTPClient(
    api_url="http://localhost:9001", # Serverless API はプロファイリングをサポートしていません
    api_key="API_KEY"
)

result = client.run_workflow(
    workspace_name="workspace-name",
    workflow_id="workflow-id",
    images={"image": "YOUR_IMAGE.jpg"},
    enable_profiling=True
)
```

プロファイリングが有効な場合、トレースファイルは自動的に次の場所に保存されます: `./inference_profiling/` デフォルトでは。各トレースファイルには次の名前が付けられます: `workflow_execution_tack_{timestamp}.json`.

## プロファイリングトレースの表示

プロファイリングトレースは Chrome Tracing 形式で保存されます。可視化するには:

1. Chrome を開いて、次に移動します: `chrome://tracing/`.
2. クリック **Load** をクリックし、トレースファイルを選択します（例: `workflow_execution_tack_2026_03_30_10_46_04.json`).
3. タイムラインビューを使って、各ワークフローステップの実行時間を確認します。

任意のスパンをクリックすると、その継続時間、カテゴリ、引数が表示されます。たとえば、どのブロックの `step_execution` を見ているのか、などです:

<figure><img src="/files/bdbd064f083837083aefc6bc799f35b63fccee47" alt="Chrome tracing timeline with a selected step"><figcaption></figcaption></figure>

時間のほとんどは 2回の物体検出（process 57）と Gemini 呼び出し（process 78）に費やされています。ズームインすると、物体検出ステップの間にある他のステップ（検出オフセット、動的クロッピング、可視化など）を確認できます:

<figure><img src="/files/5d2822ee21512c644f453f6ff4d80fab89171e62" alt="Chrome tracing aggregated statistics view"><figcaption></figcaption></figure>

## 主な詳細

| 詳細         | 値                                                    |
| ---------- | ---------------------------------------------------- |
| **トレース形式** | JSON、Chrome の `chrome://tracing/` ツールと互換性あり          |
| **出力先**    | `./inference_profiling/` デフォルトでは（設定可能）               |
| **ファイル名**  | `workflow_execution_tack_{YYYY_MM_DD_HH_MM_SS}.json` |

## 制限事項

* **コンパイルのオーバーヘッド**：Workflow のコンパイルにより 10〜25ms の遅延が追加されます。GPU 推論時間が同程度の小規模・高速モデルでは、これは無視できません。このオーバーヘッドは、動画処理では開始時に 1 回だけ発生します。
* **実行エンジンのレイテンシ**：Workflows Execution Engine は、フレームごとに約 1〜2ms の名目上のレイテンシを追加します。
* **動的ブロック**：動的ブロックを使用する self-hosted デプロイでは、pydantic モデルの再構築により、リクエストごとに +100〜140ms のレイテンシが発生する場合があります。これはホスト型プラットフォームや、コンパイルが 1 回だけ行われる動画処理には当てはまりません。
* **モデルブロックが支配的**：通常、実行時間の約 95% はモデル推論そのものに費やされます。これには、追加のデータ変換やメタデータ管理も含まれます。

## パフォーマンスのヒント

* Workflow 定義はデフォルトで 15 分間キャッシュされます。必要に応じて次を使用してください: `use_cache=False` で `run_workflow()` 必要に応じてキャッシュを回避するために。
* 動画処理では、コンパイルのオーバーヘッドは開始時に 1 回だけ発生するため、無視できます。
* ワークフローをプロファイリングして、ボトルネックがモデル推論、データ変換、またはワークフローのオーケストレーションのどこにあるかを特定してください。
