نتائج الاختبارات المعيارية
اختبارات معيارية منشورة للأداء تقارن ADK-Rust بأطر عمل الوكلاء الأخرى. تستخدم جميع القياسات استدعاءات حقيقية لـ LLM مع إعدادات حتمية لضمان إمكانية إعادة الإنتاج.
الملخص
| المقياس | ADK-Rust | Gemini Python SDK | LangGraph |
|---|---|---|---|
| بدء التشغيل البارد | 109 ms | 501 ms | 502 ms |
| النفقات العامة لحلقة الوكيل | 568 μs | 253 μs | 1228 ms |
يحقق ADK-Rust بدء تشغيل بارد أسرع بنحو 4.6 مرات من كلا إطاري Python، مع زمن عبء للحلقة أقل من ميلي ثانية. يتميز SDK الخاص بـ Gemini Python بزمن عبء للحلقة أقل قليلًا بفضل التجريد المحدود، إلا أن زمن عبء ADK-Rust لا يُذكر مقارنةً بأزمنة الاستجابة المعتادة لـ LLM (من 500 مللي ثانية إلى 3 ثوانٍ).
نتائج أعباء العمل
simple_tool_call
رسالة مستخدم واحدة ← استدعاء أداة واحد ← استجابة نهائية واحدة. يقيس الحد الأدنى لزمن الرحلة ذهابًا وإيابًا.
| إطار العمل | إجمالي الوقت | بدء التشغيل البارد | الحمل الزائد للحلقة | CV |
|---|---|---|---|---|
| ADK-Rust | 1.2s | 109 ms | 568 μs | 4.2% |
| Gemini Python SDK | 1.8s | 501 ms | 253 μs | 6.1% |
| LangGraph | 2.1s | 502 ms | 1228 ms | 8.3% |
multi_step_reasoning
محادثة متعددة الأدوار تتطلب إجراء 3–5 استدعاءات متسلسلة للأدوات مع الاستدلال بين كل خطوة.
| الإطار | الوقت الإجمالي | بدء التشغيل البارد | الحمل الزائد للحلقة | معامل التباين |
|---|---|---|---|---|
| ADK-Rust | 4.1s | 109 ms | 568 μs | 5.1% |
| Gemini Python SDK | 5.9s | 501 ms | 253 μs | 7.8% |
| LangGraph | 7.3s | 502 ms | 1228 ms | 9.4% |
parallel_tool_invocation
رسالة مستخدم واحدة تؤدي إلى إرسال 3 استدعاءات متوازية للأدوات بشكل متزامن.
| الإطار | الزمن الإجمالي | بدء التشغيل البارد | الحمل الزائد للحلقة | CV |
|---|---|---|---|---|
| ADK-Rust | 2.3s | 109 ms | 568 μs | 3.9% |
| Gemini Python SDK | 3.7s | 501 ms | 253 μs | 5.6% |
| LangGraph | 4.8s | 502 ms | 1228 ms | 7.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
- للمقارنة بين أطر العمل: Python 3.11+ مع تثبيت
google-genaiوlanggraph
المنهجية
بيئة الاختبار
- النموذج: Gemini 3.5 Flash-Lite (
gemini-3.5-flash-lite) - درجة الحرارة: 0 (حتمي)
- بذرة عشوائية ثابتة لضمان إمكانية إعادة الإنتاج
- 10 تكرارات للقياس بعد تشغيلين تمهيديين
- الشبكة: الجهاز نفسه، والشبكة نفسها لجميع أطر العمل
عزل الحمل الزائد
يتم عزل الحمل الزائد لإطار العمل عن طريق طرح زمن استجابة LLM المقاس من إجمالي وقت التنفيذ:
loop_overhead = total_time - sum(llm_response_times) - sum(tool_execution_times)
يعزل هذا مساهمة إطار العمل: التسلسل، وإلغاء التسلسل، وتجميع السياق، وإرسال الأحداث، وإدارة الحالة.
معنى المقاييس
| المقياس | التعريف | سبب الأهمية |
|---|---|---|
| البدء البارد | الوقت من تشغيل العملية إلى استلام استجابة LLM الأولى | يؤثر في بدء تشغيل الخوادم عديمة الحالة/الحاويات، واستجابة CLI |
| الحمل الزائد للحلقة | وقت معالجة إطار العمل لكل رحلة ذهابًا وإيابًا لاستدعاء الأداة | يتراكم مع الوكلاء متعددي الخطوات (5 خطوات × 1.2s = 6s مهدرة) |
| الوقت الإجمالي | الوقت الفعلي من البداية إلى النهاية لسير العمل الكامل | زمن الاستجابة الذي يلاحظه المستخدم |
| معامل التباين | معامل التباين (std_dev / المتوسط × 100) | استقرار القياس — الأقل = أكثر موثوقية |
التكوين الحتمي
تستخدم جميع الأطر ما يلي بشكل متطابق:
- تعريفات الأدوات (الأسماء والمخططات والتنفيذات الوهمية نفسها)
- مطالبات النظام ورسائل المستخدم
- إعدادات النموذج (temperature=0، دون اختلاف في أخذ العينات)
- تنفيذات الأدوات (إرجاع استجابات ثابتة، دون عمليات إدخال/إخراج)
القيود
- تعتمد النتائج على ظروف الشبكة وحِمل 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— الوثائق الكاملة لإطار قياس الأداء
السابق: ← التقييم | التالي: التحكم في الوصول →