يوضّح هذا الدليل كيفية التنقّل في تقرير Systrace وتفسيره. لتفسير تقرير Perfetto، راجِع مستندات معالج التتبُّع.
عناصر التقرير النموذجي
ينشئ Systrace ملف HTML للمخرج يحتوي على سلسلة من الأقسام. يسرد التقرير سلاسل كل عملية. إذا عرضت سلسلة رسائل معينة إطارات واجهة المستخدم، يشير التقرير أيضًا إلى الإطارات المعروضة على طول المخطط الزمني. يمر الوقت في الاتجاه الأمامي بينما تتحرك من اليسار إلى اليمين عبر التقرير.
يحتوي التقرير من أعلى إلى أسفل على الأقسام التالية.
تفاعلات المستخدم
يحتوي القسم الأول على أشرطة تمثّل تفاعلات محدّدة للمستخدم داخل تطبيقك أو لعبتك، مثل النقر على شاشة الجهاز. تعمل هذه التفاعلات كعلامات زمنية مفيدة.
نشاط وحدة المعالجة المركزية (CPU)
يعرض القسم التالي الأشرطة التي تمثل نشاط سلسلة المحادثات ضمن كل وحدة معالجة مركزية. تعرض الأشرطة نشاط وحدة المعالجة المركزية (CPU) في جميع التطبيقات، بما في ذلك التطبيق أو اللعبة.
قسم نشاط وحدة المعالجة المركزية (CPU) قابل للتوسيع، مما يتيح لك عرض معدل تكرار الساعة لكل وحدة معالجة مركزية. يوضح الشكل 1 مثالاً لقسم نشاط وحدة المعالجة المركزية المصغر، ويوضح الشكل 2 نسخة موسّعة تعرض معدل تكرار الساعة:
أحداث النظام
تعرض المدرّجات التكرارية في هذا القسم أحداثًا معيّنة على مستوى النظام، مثل أعداد القوام والحجم الإجمالي لكائنات معيّنة.
المدرّج التكراري الذي يستحق التحقق عن كثب هو المدرّج التكراري الذي يحمل اسم SurfaceView. ويمثل العدد عدد مخازن الإطارات التي تم تكوينها والتي تم تمريرها إلى مسار العرض ولا تزال في انتظار العرض على شاشة الجهاز. نظرًا لأن معظم الأجهزة تستخدم التخزين المؤقت مرتين أو ثلاث مرات، يكون هذا العدد دائمًا 0 أو 1 أو 2.
تظهر المدرجات التكرارية الأخرى التي تصور عملية Surface Flinger، بما في ذلك أحداث VSync وعمل تبديل سلسلة واجهة المستخدم، في الشكل 3:
إطارات العرض
يعرض هذا القسم، وغالبًا ما يكون الأطول في التقرير، خطًا متعدد الألوان متبوعًا بمجموعات من الأشرطة. تمثل هذه الأشكال الحالة وحزمة الإطارات
لسلسلة تعليمات معينة تم إنشاؤها. يمثّل كل مستوى من الحزمة استدعاءً إلى beginSection()
، أو بداية حدث تتبُّع مخصَّص حدّدته لتطبيقك أو لعبتك.
يمثل الخط متعدد الألوان فوق كل حزمة من الأشرطة مجموعة حالات سلسلة معينة بمرور الوقت. يمكن أن يحتوي كل جزء من الخط على أحد الألوان التالية:
- الأخضر: قيد التشغيل
- تكمل سلسلة المحادثات العمل المتعلق بعملية أو تستجيب لمقاطعة.
- أزرق: قابل للتشغيل
- سلسلة المحادثات متاحة للتشغيل، ولكن لم تتم جدولتها في الوقت الحالي.
- أبيض: نوم
- ليس هناك أي إجراء يجب تنفيذه في سلسلة المحادثات، ربما بسبب حظر سلسلة المحادثات من خلال قفل دالة الاستبعاد المتبادل.
- البرتقالي: نوم غير متقطع
- تم حظر سلسلة المحادثات في وحدات الإدخال والإخراج أو انتظار اكتمال عملية القرص.
- اللون الأرجواني: نوم متقطع
- تم حظر سلسلة التعليمات في عملية نواة أخرى، وهي عادةً إدارة الذاكرة.
اختصارات لوحة المفاتيح
يسرد الجدول التالي اختصارات لوحة المفاتيح المتوفرة أثناء عرض تقرير Systrace:
المفتاح | الوصف | |
---|---|---|
ع | يمكنك تكبير المخطط الزمني لعملية التتبُّع. | |
أ | التحريك لليسار في المخطط الزمني للتتبع. | |
تصغير المخطط الزمني لعملية التتبُّع. | ||
د | تحريك لليمين على المخطط الزمني للتتبّع. | |
هـ | توسيط المخطط الزمني للتتبُّع على موقع الماوس الحالي. | |
م | تحديد إطار التحديد الحالي | |
1 | غيِّر نموذج الاختيار النشِط حاليًا إلى وضع "الاختيار". يقابل الزر الأول الذي يظهر في شريط أدوات أداة اختيار الماوس (انظر الصورة إلى اليسار). |
|
2 | يمكنك تغيير نموذج الاختيار النشِط حاليًا إلى وضع "التحريك". يناظر الزر الثاني الذي يظهر في شريط أدوات أداة اختيار الماوس (راجع الصورة على اليسار). |
|
3 | غيِّر نموذج الاختيار النشط حاليًا إلى وضع "التكبير/التصغير". يناظر الزر الثالث الذي يظهر في شريط أدوات أداة اختيار الماوس (انظر الصورة إلى اليسار). |
|
4 | يمكنك تغيير نموذج الاختيار النشط حاليًا إلى وضع "التوقيت". يناظر الزر الرابع الذي يظهر في شريط أدوات أداة اختيار الماوس (انظر الصورة إلى اليسار). |
|
عرض الشبكة في بداية المهمة المحدّدة حاليًا. | ||
Shift + G | عرض الشبكة في نهاية المهمة المحددة حاليًا. | |
السهم المتّجه لليسار | اختَر الحدث السابق في المخطط الزمني المحدّد حاليًا. | |
السهم المتّجه لليمين | اختَر الحدث التالي في المخطط الزمني المحدّد حاليًا. |
تحديد مشاكل الأداء
عند التفاعل مع تقرير Systrace، يمكنك فحص استخدام وحدة المعالجة المركزية (CPU) للجهاز على مدار مدة التسجيل. للحصول على مساعدة أثناء التنقل في تقرير HTML، راجع قسم اختصارات لوحة المفاتيح، أو انقر على الرابط ؟ في أعلى يسار التقرير
توضّح الأقسام أدناه كيفية فحص المعلومات الواردة في التقرير للعثور على مشاكل الأداء وحلّها.
تحديد المشاكل المتعلّقة بالأداء
عند التنقل في تقرير Systrace، يمكنك تحديد المخاوف المتعلّقة بالأداء بسهولة أكبر عن طريق اتخاذ إجراء أو أكثر من الإجراءات التالية:
- حدد الفاصل الزمني للاهتمام من خلال رسم مستطيل حول الفاصل الزمني.
- يمكنك تحديد منطقة المشكلة أو تمييزها باستخدام أداة قياس المسافات.
- اعرض كل عملية تحديث للعرض من خلال النقر على خيارات العرض > تمييز VSync.
فحص إطارات واجهة المستخدم والتنبيهات
كما هو موضح في الشكل 4، يسرد تقرير Systrace كل عملية تعرض إطارات واجهة المستخدم ويشير إلى كل إطار معروض على طول المخطط الزمني. يُشار إلى الإطارات التي يتم عرضها خلال 16.6 ملي ثانية المطلوبة للحفاظ على 60 إطارًا مستقرًا في الثانية من خلال دوائر الإطارات الخضراء. يُشار إلى الإطارات التي يستغرق عرضها أكثر من 16.6 ملي ثانية ضمن دوائر إطار صفراء أو حمراء.
![عرض مكبر لإطار](https://developer.android.com/static/topic/performance/images/tracing/frame-unselected.png?authuser=5&hl=ar)
ويؤدي النقر على دائرة إطار إلى تمييزها وتقديم معلومات إضافية حول العمل الذي أنجزه النظام لعرض هذا الإطار، بما في ذلك التنبيهات. ويوضح التقرير أيضًا الطرق التي كان يتم تنفيذها من قِبل النظام أثناء عرض هذا الإطار. يمكنك التحقق من هذه الطرق لتحديد الأسباب المحتملة لتعطل واجهة المستخدم.
![تم اختيار الإطار الذي يتضمّن مشاكل.](https://developer.android.com/static/topic/performance/images/tracing/frame-selected.png?authuser=5&hl=ar)
بعد اختيار إطار بطيء، قد يظهر لك تنبيه في الجزء السفلي من
التقرير. يشير التنبيه المعروض في الشكل 5 إلى أنّ المشكلة الأساسية في الإطار
تتمثل في قضاء الكثير من الوقت داخل عملية إعادة التدوير وإعادة التجليد في ListView
. هناك
روابط إلى الأحداث ذات الصلة في مسار التتبُّع تشرح المزيد من المعلومات حول
ما يفعله النظام خلال هذه الفترة.
للاطّلاع على كل تنبيه اكتشفته الأداة في سجلّ التتبُّع، بالإضافة إلى عدد المرات التي شغّلت فيها الجهاز كل تنبيه، انقر على علامة التبويب التنبيهات في أقصى يسار النافذة، كما هو موضَّح في الشكل 6. تساعدك لوحة التنبيهات على معرفة المشاكل التي تحدث في التتبع وعدد المرات التي تساهم فيها في إزالة البيانات غير المرغوب فيها. يمكنك اعتبار هذه اللوحة قائمة بالأخطاء التي يجب إصلاحها. غالبًا ما يؤدي تغيير أو تحسُّن بسيط في مجال واحد إلى إزالة مجموعة كاملة من التنبيهات.
![تم عرض علامة تبويب التنبيه](https://developer.android.com/static/topic/performance/images/tracing/frame-selected-alert-tab.png?authuser=5&hl=ar)
إذا لاحظت بذل الكثير من الجهد في سلسلة واجهة المستخدم، يمكنك استخدام أحد الأساليب التالية للمساعدة في تحديد الطرق التي تستهلك الكثير من وقت وحدة المعالجة المركزية (CPU):
- إذا كانت لديك فكرة عن الطرق التي يمكن أن تسبب المؤثِّرات السلبية، فأضف علامات التتبع إلى هذه الطرق. ولمزيد من المعلومات، اطّلِع على الدليل حول كيفية تحديد الأحداث المخصّصة في رمزك.
- إذا لم تكن متأكدًا من مصدر مشاكل واجهة المستخدم، استخدِم ملف تعريف وحدة المعالجة المركزية (CPU) المتاح في "استوديو Android". يمكنك إنشاء سجلات التتبُّع، ثم استيرادها وفحصها باستخدام أداة تحليل وحدة المعالجة المركزية (CPU).