ベンチマーク結果

ADK-Rustと他のエージェントフレームワークを比較した、公開済みのパフォーマンスベンチマークです。すべての測定では、再現性を確保するため決定論的な設定で実際のLLM呼び出しを使用しています。

概要

指標ADK-RustGemini Python SDKLangGraph
コールドスタート109 ms501 ms502 ms
エージェントループのオーバーヘッド568 μs253 μs1228 ms

ADK-Rustは、Pythonの両フレームワークと比較してコールドスタートが約4.6倍高速で、ループオーバーヘッドもサブミリ秒です。Gemini Python SDKは、抽象化が最小限であるためループオーバーヘッドがやや低くなりますが、ADK-Rustのオーバーヘッドは、一般的なLLMの応答時間(500ms~3秒)と比べれば無視できる程度です。

ワークロードの結果

simple_tool_call

1つのユーザーメッセージ → 1回のツール呼び出し → 1つの最終応答。最小限のラウンドトリップを測定します。

フレームワーク合計時間コールドスタートループオーバーヘッドCV
ADK-Rust1.2s109 ms568 μs4.2%
Gemini Python SDK1.8s501 ms253 μs6.1%
LangGraph2.1s502 ms1228 ms8.3%

multi_step_reasoning

各ステップの間に推論を挟みながら、3~5回の連続したツール呼び出しを必要とするマルチターンの会話。

フレームワーク合計時間コールドスタートループオーバーヘッドCV
ADK-Rust4.1s109 ms568 μs5.1%
Gemini Python SDK5.9s501 ms253 μs7.8%
LangGraph7.3s502 ms1228 ms9.4%

parallel_tool_invocation

単一のユーザーメッセージにより、3つの並列ツール呼び出しが同時にディスパッチされます。

フレームワーク合計時間コールドスタートループオーバーヘッドCV
ADK-Rust2.3s109 ms568 μs3.9%
Gemini Python SDK3.7s501 ms253 μs5.6%
LangGraph4.8s502 ms1228 ms7.2%

再現方法

# Run all benchmarks
cargo adk bench

# Run a specific workload
cargo adk bench --workload simple_tool_call

# Save results as a baseline
cargo adk bench --save-baseline v1.0.0

# Compare against baseline
cargo adk bench --check-regression v1.0.0 --tolerance 10

# Output as JSON for CI
cargo adk bench --output json --output-file results.json

要件:

  • GOOGLE_API_KEY 環境変数が設定されていること
  • Gemini API へのネットワークアクセス
  • フレームワーク間の比較の場合: google-genailanggraph がインストールされた Python 3.11 以降

方法論

テスト環境

  • モデル: Gemini 3.5 Flash-Lite (gemini-3.5-flash-lite)
  • 温度: 0(決定論的)
  • 再現性のため固定した乱数シード
  • 2 回のウォームアップ実行後に 10 回の測定を実施
  • ネットワーク: すべてのフレームワークで同じマシン、同じネットワークを使用

オーバーヘッドの分離

フレームワークのオーバーヘッドは、合計実行時間から測定した LLM レイテンシを減算して分離します。

loop_overhead = total_time - sum(llm_response_times) - sum(tool_execution_times)

これにより、シリアライズ、デシリアライズ、コンテキストの組み立て、イベントのディスパッチ、状態管理におけるフレームワークの寄与を分離できます。

メトリクスの意味

指標定義重要性
コールドスタートプロセスの起動から最初のLLMレスポンスを受信するまでの時間サーバーレス/コンテナの起動とCLIの応答性に影響する
ループオーバーヘッドツール呼び出しの往復ごとのフレームワーク処理時間複数ステップのエージェントでは累積する(5ステップ × 1.2秒 = 6秒の無駄)
合計時間ワークフロー全体のエンドツーエンドの経過時間ユーザーが感じる待ち時間
CV変動係数(std_dev / 平均 × 100)測定の安定性 — 低いほど信頼性が高い

決定論的な構成

すべてのフレームワークで以下を同一にします。

  • ツール定義(同じ名前、スキーマ、モック実装)
  • システムプロンプトとユーザーメッセージ
  • モデル設定(temperature=0、サンプリングによる変動なし)
  • ツール実装(固定レスポンスを返し、I/O なし)

制限事項

  • 結果はネットワークの状態と Gemini API の負荷に依存します
  • Python フレームワークは CPython 3.11(PyPy ではない)で測定しています
  • コールドスタートには Python フレームワークの Python インタープリター起動時間が含まれます
  • LangGraph のループオーバーヘッドには、グラフ走査と状態のシリアル化が含まれます

リグレッションの追跡

パフォーマンスのリグレッションを検出するには、CI でベンチマークを使用します。

# In CI pipeline after merge to main
cargo adk bench --check-regression v1.0.0 --tolerance 10

# Exit code 1 if any metric regressed >10%

ベースラインは .adk-bench/baselines/ に保存されており、リポジトリにコミットできます。

参考資料

  • ベンチマークツールガイド — CLI のリファレンスと構成
  • ROADMAP.md — 今後のリリースに向けたパフォーマンス目標
  • adk-bench/README.md — ベンチマークフレームワークの完全なドキュメント

前へ: ← 評価 | 次へ: アクセス制御 →

ベンチマーク結果 - ADK-Rust ドキュメント | ADK-Rust