بيريتو

perfetto هي أداة تتيح لك جمع معلومات الأداء من أجهزة Android عبر Android Debug Bridge (ADB). استدعِ أداة perfetto باستخدام الأمر adb shell perfetto .... تستخدم perfetto مصادر مختلفة لجمع بيانات آثار الأنشطة من جهازك، مثل:

  • ftrace للحصول على معلومات من النواة
  • atrace للتعليق التوضيحي لمساحة المستخدم في الخدمات والتطبيقات
  • heapprofd لمعلومات استخدام الذاكرة الأصلية للخدمات والتطبيقات

توضّح هذه الصفحة كيفية طلب perfetto وإعداده لإنشاء الإخراج المطلوب. لمزيد من المعلومات، يمكنك الاطّلاع على مستندات perfetto.

بناء الجملة

يوضّح هذا القسم كيفية استخدام ADB لاستدعاء perfetto لأوضاع مختلفة وإنشاء تتبُّع.

اختيار مصدر البيانات

يتضمن perfetto الوضعين التاليين اللذين يحددان مصادر البيانات التي تستخدمها لتسجيل بيانات التتبّع:

  • الوضع الفاتح: يمكنه اختيار مجموعة فرعية فقط من مصادر البيانات، على وجه التحديد atrace وftrace. ومع ذلك، يوفّر هذا الوضع واجهة مشابهة لـ systrace.
  • الوضع العادي: يحصل على إعداده في مخزن بروتوكولات مؤقت ويتيح لك الاستفادة من وظائف perfetto بصورةٍ أكبر من خلال استخدام مصادر بيانات مختلفة عن atrace وftrace.

الخيارات العامة

يسرد الجدول التالي الخيارات المتاحة عند استخدام perfetto في أيّ من الوضعَين:

الجدول 1. قائمة بخيارات أداة Perfetto العامة المتاحة

Option الوصف
--background |
-d
يخرج perfetto على الفور من واجهة سطر الأوامر ويواصل تسجيل التتبُّع في الخلفية.
--background-wait | -D مثل --background، ولكنه ينتظر (ما يصل إلى 30 ثانية) حتى تبدأ جميع مصادر البيانات قبل الخروج. تكون قيمة رمز الخروج صفرًا في حال تلقّي إقرار ناجح وغير صفري في الحالات الأخرى (خطأ أو انتهاء المهلة).
--alert-id رقم تعريف التنبيه الذي أدّى إلى عملية التتبّع هذه.
--config-id رقم تعريف إعدادات التشغيل
--config-uid المعرّف الفريد للتطبيق الذي سجّل الإعداد
--subscription-id رقم تعريف الاشتراك الذي أدّى إلى بدء عملية التتبّع هذه.
--out OUT_FILE |
-o OUT_FILE

تحدِّد المسار المطلوب إلى ملف تتبُّع الناتج أو - في stdout. يكتب perfetto الناتج إلى الملف الموضّح في العلامات السابقة. يتم تجميع تنسيق الإخراج مع التنسيق المحدّد في AOSP trace.proto.

ملاحظة: يجب تحديد اسم المسار الكامل لملف الإخراج. يجب عادةً كتابة الملفات في مجلد /data/misc/perfetto-traces.

--upload عند الانتهاء، يمرّر التتبُّع إلى الحزمة المحدَّدة في الرسالة IncidentReportConfig في إعدادات تتبُّع Proto.
--no-guardrails لإيقاف إجراءات الحماية من الاستخدام المفرط للموارد عند تفعيل علامة --upload أثناء الاختبار.
--reset-guardrails إعادة ضبط الحالة الدائمة لحواجز الحماية والخروج من أجل الاختبار.
--rsave-for-bugreport إذا كان التتبّع باستخدام الرمز bugreport_score > 0 قيد التشغيل، سيتم حفظ التتبُّع في ملف. تعرِض المسار عند الانتهاء.
--query للاستعلام عن حالة الخدمة وطباعتها كنص يمكن لشخص عادي قراءته.
--query-raw هذا الجزء يشبه --query، ولكنه يطبع وحدات بايت أولية بترميز أوّلي لـ tracing_service_state.proto..
--help | -h تطبع نص المساعدة الخاص بأداة perfetto.

الوضع الفاتح

في ما يلي البنية العامة لاستخدام perfetto في الوضع الفاتح:

 adb shell perfetto [ --time TIMESPEC ] [ --buffer SIZE ] [ --size SIZE ]
             [ ATRACE_CAT | FTRACE_GROUP/FTRACE_NAME | FTRACE_GROUP/* ]...
             --out FILE

يسرد الجدول التالي الخيارات المتاحة عند استخدام perfetto في الوضع الفاتح:

الجدول 2. قائمة بخيارات أدوات perfetto المتاحة عند استخدام الوضع الفاتح

Option الوصف
--time TIME[s|m|h] |
-t TIME[s|m|h]
تحدّد مدة التتبُّع بالثواني أو الدقائق أو الساعات. على سبيل المثال، تحدِّد السمة --time 1m مدة تتبُّع تبلغ دقيقة واحدة. المدة التلقائية هي 10 ثوانٍ.
--buffer SIZE[mb|gb] |
-b SIZE[mb|gb]
تحدد هذه السمة حجم المخزن المؤقت للحلقة بالميغابايت (mb) أو الغيغابايت (gb). المَعلمة التلقائية هي --buffer 32mb.
--size SIZE[mb|gb] |
-s SIZE[mb|gb]
تحدّد هذه السمة الحد الأقصى لحجم الملف بالميغابايت (mb) أو بالغيغابايت (gb). بشكل تلقائي، لا يستخدم perfetto سوى المخزن المؤقت للرنين في الذاكرة.
--app | -a اسم تطبيق Android (التتبع)

هذه الخيارات متبوعة بقائمة من محدِّدات الأحداث:

الجدول 3. تضم هذه القائمة محددات الأحداث للوضع الفاتح.

حدث الوصف
ATRACE_CAT تحدِّد هذه السياسة فئات atrace التي تريد تسجيل عملية تتبُّع لها. على سبيل المثال، يتتبّع الأمر التالي "إدارة النوافذ" باستخدام atrace:
    adb shell perfetto --out FILE wm
    

لتسجيل فئات أخرى، اطّلِع على القائمة التي تتضمّن atrace فئة.

FTRACE_GROUP/FTRACE_NAME تحدِّد هذه السياسة أحداث "ftrace" التي تريد تسجيل عملية تتبُّع لها. على سبيل المثال، يتتبّع الأمر التالي أحداث sched/sched_switch:
      adb shell perfetto --out FILE sched/sched_switch
      

الوضع العادي

في ما يلي البنية العامة لاستخدام perfetto في الوضع العادي:

 adb shell perfetto [ --txt ] --config CONFIG_FILE --out FILE

يسرد الجدول التالي الخيارات المتاحة عند استخدام perfetto في الوضع العادي:

الجدول 4. قائمة بخيارات أدوات perfetto المتاحة عند استخدام الوضع العادي

Option الوصف
--config CONFIG_FILE | -c CONFIG_FILE تُحدِّد المسار إلى ملف الإعداد. في الوضع العادي، قد يتم ترميز بعض الإعدادات في مخزن مؤقت لبروتوكول الإعداد. يجب أن يتوافق هذا الملف مع مخطط المخزن المؤقت للبروتوكولات المحدّدة في AOSP trace_config.proto.

يمكنك اختيار مصادر البيانات وضبطها باستخدام العنصر DataSourceConfig في TraceConfig، على النحو المحدّد في AOSP data_source_config.proto.

--txt توجّه هذه السمة perfetto إلى تحليل ملف الإعداد باسم pbtxt. هذه العلامة مخصّصة للاختبار المحلي فقط، ولا ننصحك بتفعيلها للإنتاج.

مصادر البيانات المتوافقة

ويوضّح هذا القسم المصادر المختلفة التي يستخدمها perfetto لإنشاء بيانات التتبُّع.

فوتراس

يسمح مصدر البيانات "ftrace" لـ "perfetto" بالحصول على الأحداث من النواة.

فعِّل هذا المصدر من خلال الإعداد ftrace_config في DataSourceConfig.

وتشمل الأحداث التي يمكن تفعيلها ما يلي:

  • جدولة النشاط:

    • sched/sched_switch
    • sched/sched_wakeup
    • sched/sched_wakeup_new
    • sched/sched_process_exec
    • sched/sched_process_exit
    • sched/sched_process_fork
    • sched/sched_process_free
    • sched/sched_process_hang
    • sched/sched_process_wait
  • أحداث نظام الملفات:

  • atrace أحداث

بناءً على جهازك أو إصدار نظام التشغيل أو النواة، قد تتوفر المزيد من الأحداث. لمزيد من المعلومات، يُرجى الرجوع إلى النماذج الأوّلية للإعدادات.

إحصاءات العمليات

يتيح لك مصدر بيانات إحصاءات العملية الحصول على عدّادات استطلاع رأي حول النظام والعمليات الفردية.

فعِّل هذا المصدر من خلال ضبط process_stats_config وsys_stats_config في DataSourceConfig.

تشمل البيانات التي يُنشئها perfetto ما يلي:

قد تتوفر أحداث إضافية بناءً على جهازك وإصدار نظام التشغيل والنواة. لمزيد من المعلومات، يُرجى الرجوع إلى النماذج الأوّلية للإعدادات للسمة sys_stats وprocess_stats.

heapprofd

يتيح لك heapprofd أخذ عينات من أسباب استخدام الذاكرة الأصلية.

فعِّل هذا المصدر من خلال ضبط heapprofd_config في DataSourceConfig. ينتج عن هذا الإعداد ProfilePackets، بما في ذلك إطارات Java لحزمة المكالمات.

ويمكنك الاطّلاع على معلومات إضافية حول كيفية استخدام "heapprofd" على الرابط perfetto.dev.

مصادر أخرى

بناءً على جهازك وإصدار نظام التشغيل والنواة، قد يتوفر المزيد من مصادر البيانات. للاطّلاع على المزيد من المعلومات، يُرجى الرجوع إلى النماذج الأوّلية لإعداد مصدر البيانات.

يمكنك الاطّلاع على معلومات إضافية حول perfetto على perfetto.dev.