تتيح لك أداة perfetto
جمع معلومات الأداء من
أجهزة Android عبر
Android Debug Bridge (ADB) استدعاء
perfetto
باستخدام الأمر adb shell perfetto ...
.
يستخدم perfetto
مجموعة
مصادر لجمع بيانات تتبّع الأداء من جهازك، مثل:
ftrace
للحصول على معلومات من النواة (kernel)atrace
للتعليق التوضيحي لمساحة المستخدم في الخدمات والتطبيقاتheapprofd
للحصول على معلومات استخدام الذاكرة الأصلية للخدمات والتطبيقات
توضّح هذه الصفحة كيفية استدعاء الدالة perfetto
وضبطه لإنشاء
الإخراج المطلوب. لمزيد من المعلومات، راجع
مستندات perfetto
بناء الجملة
يوضّح هذا القسم كيفية استخدام ADB لطلب perfetto
في أوضاع مختلفة.
وإنشاء التتبع.
اختيار مصدر البيانات
يتضمّن perfetto
الوضعَين التاليَين اللذين يحدّدان مصادر البيانات
التي تستخدمها لتسجيل آثار الأنشطة:
- الوضع الفاتح: يمكن اختيار مجموعة فرعية فقط من مصادر البيانات، وتحديدًا
atrace
. وftrace
. ومع ذلك، يوفر هذا الوضع واجهة مشابهةsystrace
- الوضع العادي: يتم ضبطه في مخزن بروتوكولات مؤقت ويتيح لك
الاستفادة من المزيد من وظائف
perfetto
باستخدام مصادر بيانات مختلفة منatrace
وftrace
الخيارات العامة
يسرد الجدول التالي الخيارات المتاحة عند استخدام perfetto
في أيّ من
الوضع:
Option | الوصف |
---|---|
--background |
|
يخرج perfetto فورًا من واجهة سطر الأوامر ويتابع العملية.
لتسجيل أثرك في الخلفية. |
--background-wait | -D
|
مثل --background ، ولكن تنتظر (ما يصل إلى 30 ثانية) للجميع
مصادر البيانات للبدء قبل الخروج. الخروج
تكون قيمة الرمز صفرًا إذا كان الإقرار الناجح
تم استلامها وغير صفرية بخلاف ذلك (خطأ أو مهلة).
|
--alert-id
|
رقم تعريف التنبيه الذي أدّى إلى عملية التتبّع هذه. |
--config-id
|
رقم تعريف إعداد التشغيل. |
--config-uid
|
المعرّف الفريد للتطبيق الذي سجَّل الإعدادات |
--subscription-id
|
رقم تعريف الاشتراك الذي أدّى إلى عملية التتبّع هذه. |
--out OUT_FILE |
|
تحدِّد المسار المطلوب لملف تتبُّع النتائج أو ملاحظة: يجب تحديد اسم المسار الكامل
ملف إخراج. عادة ما يجب كتابة الملفات في مجلد
مجلد واحد ( |
--upload
|
عند الانتهاء، يتم تمرير التتبع إلى الحزمة المحددة بواسطة
رسالة واحدة (IncidentReportConfig ) في إعداد تتبُّع النماذج الأوّلية. |
--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
" في
الوضع الفاتح:
Option | الوصف |
---|---|
--time TIME[s|m|h] |
|
تُحدِّد مدة التتبُّع بالثواني أو الدقائق أو الساعات.
على سبيل المثال، يحدّد --time 1m مدة تتبُّع تبلغ دقيقة واحدة.
المدة التلقائية هي 10 ثوانٍ.
|
--buffer SIZE[mb|gb] |
|
تحدّد حجم المخزن المؤقت للحلقة بالميغابايت أو الغيغابايت.
المعلمة التلقائية هي --buffer 32mb .
|
--size SIZE[mb|gb] |
|
تحدّد هذه السياسة الحد الأقصى لحجم الملف بالميغابايت أو الغيغابايت. من
بشكل تلقائي، يستخدم perfetto المخزن المؤقت في الذاكرة فقط.
|
--app | -a
|
اسم تطبيق Android (atrace) |
تكون هذه الخيارات متبوعة بقائمة محددات الأحداث:
حدث | الوصف |
---|---|
ATRACE_CAT |
تُحدِّد هذه السياسة فئات atrace التي تريد تسجيل تتبُّع تتبُّعها.
على سبيل المثال، يتتبّع الأمر التالي "مدير النوافذ" باستخدام atrace :
adb shell perfetto --out FILE wm
لتسجيل فئات أخرى، اطّلِع على هذا القسم
قائمة
من |
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
" في
الوضع العادي:
Option | الوصف |
---|---|
--config CONFIG_FILE | -c CONFIG_FILE
|
تُستخدَم لتحديد المسار إلى ملف إعداد. في الوضع العادي، قد لا تكون
من الإعدادات في مخزن بروتوكول التهيئة المؤقت. هذا الملف
مع مخطط المخزن المؤقت للبروتوكولات المحدد في
AOSP trace_config.proto :
تحديد مصادر البيانات وإعدادها باستخدام
|
--txt
|
توجّه هذه السياسة perfetto إلى تحليل ملف الإعداد باسم pbtxt . هذا النمط
للاختبار المحلي فقط، ولا يُنصح
لتفعيلها للإنتاج. |
مصادر البيانات المتوافقة
يوضّح هذا القسم المصادر المختلفة التي يستخدمها perfetto
لإنشاء المحتوى.
أثرك.
حساب ftrace
يسمح مصدر البيانات "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
أحداث نظام الملفات:
استنادًا إلى الجهاز أو إصدار نظام التشغيل أو النواة، قد يتم المتوفرة. لمزيد من المعلومات، راجِع النماذج الأوّلية للضبط.
إحصاءات العمليات
يتيح لك مصدر بيانات إحصاءات العملية الحصول على عدّادات استطلاعات حول والعمليات الفردية والنظامية.
تفعيل هذا المصدر من خلال ضبط process_stats_config
وsys_stats_config
في DataSourceConfig.
تشمل البيانات التي ينشئها "perfetto
" ما يلي:
-
/proc/meminfo
/proc/vmstat
/proc/stat
-
/proc/\<pid\>/status
/proc/\<pid\>/oom_score_adj
استنادًا إلى الجهاز وإصدار نظام التشغيل والنواة، قد يتم
المتوفرة. للمزيد من المعلومات، يُرجى الرجوع إلى النماذج الأوّلية للإعدادات الخاصة بـ sys_stats
.
وprocess_stats
heapprofd
يتيح لك heapprofd
نماذج من أسباب استخدام الذاكرة الأصلية.
تفعيل هذا المصدر من خلال ضبط heapprofd_config
في DataSourceConfig. ينتج عن هذا الإعداد ProfilePackets
بما في ذلك إطارات Java لاستدعاء الاستدعاء.
يمكنك العثور على معلومات إضافية عن كيفية استخدام heapprofd
على
perfetto.dev
مصادر أخرى
اعتمادًا على الجهاز وإصدار نظام التشغيل والنواة، قد يتم المتوفرة. لمزيد من المعلومات، يُرجى الرجوع إلى النماذج الأوّلية لتهيئة مصدر البيانات.
يمكن العثور على معلومات إضافية حول perfetto
في
perfetto.dev.