بما أنّ ملفات ProfilingManager الشخصية تستخدم تنسيق Perfetto العادي
ويمكن الاستعلام عنها باستخدام PerfettoSQL، يمكنك إقران وكيل ترميز مستند إلى الذكاء الاصطناعي مع
مهارة Perfetto AI لإجراء تحليل السبب الأساسي بشكل آلي في
مساحة العمل مباشرةً بدلاً من التنقّل يدويًا في المخططات الزمنية في واجهة مستخدم Perfetto
أو كتابة طلبات بحث مخصّصة في مكتبة Perfetto العادية:
- تحميل الملف الشخصي: يفتح الوكيل الملف الشخصي الذي تم جمعه باستخدام
trace_processorفي Perfetto. - تنفيذ طلبات البحث التشخيصية: استنادًا إلى مهارة الذكاء الاصطناعي في Perfetto، يرسل الوكيل طلبات بحث إلى وحدات المكتبة العادية (مثل
android.frames.timelineللبحث عن مشاكل في سلاسة العرض أوandroid.memory.heap_graph.dominator_treeللبحث عن تسرّب الذاكرة) ويحسّن طلبات البحث بشكل متكرّر. - الربط بالرمز المصدري: يربط الوكيل شرائح التتبُّع المخصّصة أو حزم التنفيذ التي تم أخذ عيّنات منها أو أسماء الفئات المحفوظة في الملف الشخصي مباشرةً بملفات Kotlin أو Java المصدرية ويقترح إصلاحًا.
إعداد مهارة Perfetto AI
تعلّم مهارة Perfetto AI المفتوحة المصدر وكلاء الترميز كيفية تشغيل
trace_processor وكتابة PerfettoSQL واتّباع سير العمل الموجَّه لتحليل
ذاكرة Android ووحدة المعالجة المركزية. تتضمّن كل عملية تثبيت برنامج تضمين trace_processor، لذا
ليس عليك تثبيت trace_processor بشكل منفصل:
التثبيت باستخدام الذكاء الاصطناعي: نفِّذ الطلب التالي في أي وكيل ترميز مستنِد إلى الذكاء الاصطناعي:
Following instructions from https://perfetto.dev/docs/getting-started/using-ai set up the Perfetto AI skill to be usable by any agentالتثبيت يدويًا: اتّبِع تعليمات الإعداد في مقالة استخدام الذكاء الاصطناعي مع Perfetto لوكيلك (مثل Claude Code أو Codex أو Cursor أو Antigravity أو OpenCode).
أمثلة على سير العمل
ضع ملفًا شخصيًا واحدًا أو أكثر من الملفات الشخصية التي تم التقاطها في مساحة العمل واطلب من وكيل الذكاء الاصطناعي التحقيق. يمكنك تحليل ملف شخصي واحد لتشخيص مشكلة فردية أو تمرير ملفات شخصية متعددة لمقارنة الأنماط والانحدارات بشكل مجمّع.
تحليل لقطات لأجزاء من الذاكرة في Java وحالات نفاد الذاكرة (OOM)
عند تقديم لقطة لأجزاء من ذاكرة Java تم التقاطها مباشرةً باستخدام
PROFILING_TYPE_JAVA_HEAP_DUMP أو تلقائيًا من خلال
عامل تشغيل TRIGGER_TYPE_OOM، يمكن لوكيل الذكاء الاصطناعي الذي يستخدم مهارة Perfetto AI
مساعدتك في تحديد:
- تسرُّب الذاكرة: العناصر، مثل نُسخ
ActivityأوFragmentالتي تم تدميرها، والتي تظل قابلة للوصول إليها من جذور GC عندما كان من المفترض استعادتها. - العناصر المكرّرة بشكل كبير: الفئات التي تحتوي على عدد كبير من النُسخ بشكل غير متوقّع وتستهلك بشكل جماعي جزءًا كبيرًا من الذاكرة المؤقتة.
- عدم كفاءة الذاكرة: يشير ذلك إلى ذاكرة التخزين المؤقت الكبيرة جدًا أو هياكل البيانات المكرّرة أو عناصر التحكّم الفردية التي تحتفظ بكمية غير متناسبة من الذاكرة.
للتحقيق في لقطة لأجزاء من الذاكرة في OutOfMemoryError وربطها بالرمز المصدر لتطبيقك، يمكنك تشغيل طلب مثل التالي:
Analyze the Perfetto OOM heap dump at </path/to/profile>, which corresponds to
the codebase located at </path/to/codebase> using the Perfetto AI skill and find
the root cause of the OutOfMemoryError.
للاطّلاع على مثال كامل للتقرير الذي ينشئه هذا الطلب، بما في ذلك مسار الاحتفاظ بشجرة الهيمنة والسبب الأساسي للرمز المصدر والحلّ المقترَح، يُرجى الاطّلاع على أتمتة التحقيق في مشكلة نفاد الذاكرة (OOM) باستخدام وكيل الذكاء الاصطناعي في دراسة حالة: تصحيح أخطاء عطل ناتج عن نفاد الذاكرة (OOM).
تحليل سجلّات تتبُّع النظام وأخطاء ANR
عند تقديم سجلّ تتبّع النظام الذي تم تسجيله مباشرةً باستخدام
PROFILING_TYPE_SYSTEM_TRACE أو تلقائيًا من خلال
مشغّل TRIGGER_TYPE_ANR، يمكن لوكيل الذكاء الاصطناعي الذي يستخدم مهارة Perfetto AI
مساعدتك في تحديد:
- عمليات حظر سلسلة واجهة المستخدم: أجزاء التتبُّع التي تستغرق وقتًا طويلاً أو الطلبات المتزامنة التي تمنع سلسلة واجهة المستخدم من معالجة أحداث الإدخال أو رسم الإطارات قبل بلوغ الحدّ الأقصى لأخطاء ANR
- مشاكل في حالة سلسلة التعليمات: الفترات التي تتعطّل فيها سلسلة التعليمات الرئيسية في حالات
Sleeping(مثل حظر وحدات الإدخال والإخراج في الشبكة أو مهلاتThread.sleep) أوBlocked(تعارض القفل) أوRunnable(تأخيرات في جدولة وحدة المعالجة المركزية). - ارتفاعات مفاجئة في استخدام وحدة المعالجة المركزية في سلسلة التعليمات الرئيسية: عمليات حسابية مكلفة أو حلقات تكرار ضيقة يتم تنفيذها مباشرةً في سلسلة واجهة المستخدم بدلاً من سلسلة التعليمات في الخلفية
للتحقيق في سجلّ تتبّع نظام ANR وربطه بالرمز المصدر لتطبيقك، يمكنك تشغيل طلب مثل التالي:
Analyze the Perfetto system trace at </path/to/trace.perfetto-trace>, which
corresponds to an ANR trace, and find the root cause of the ANR using the
Perfetto AI skill. The codebase is located at </path/to/codebase>.
للاطّلاع على مثال كامل للتقرير الذي ينشئه هذا الطلب، بما في ذلك
تفاصيل أجزاء سلسلة التعليمات الرئيسية، وإعادة إنشاء الفاصل الزمني لـ thread_state،
وتعيين الرمز المصدر، يُرجى الاطّلاع على أتمتة التحقيق في أخطاء ANR باستخدام وكيل الذكاء الاصطناعي
في دراسة حالة: تصحيح أخطاء ANR.