يتضمّن نظام التشغيل Android بعض خيارات المطوّرين على الجهاز فقط التي تساعدك في تحديد المشاكل المحتملة في عرض واجهة المستخدم لتطبيقك، مثل تنفيذ عمليات عرض أكثر من اللازم أو تنفيذ عمليات طويلة في سلسلة التعليمات ووحدة معالجة الرسومات. توضّح هذه الصفحة كيفية تصحيح أخطاء تجاوز حدّ وحدة معالجة الرسومات ورسم مخطط لعرض GPU.
لمزيد من المعلومات حول خيارات المطوّرين على الجهاز فقط، بما في ذلك كيفية تفعيلها، يُرجى قراءة مقالة ضبط خيارات المطوّرين على الجهاز فقط.
رسم مخطط لسرعة عرض الرسومات في وحدة معالجة الرسومات
تعرض أداة "رسم مخطط لعرض GPU"، على شكل مدرّج تكراري قابل للتمرير، تمثيلاً مرئيًا للمدة التي يستغرقها عرض لقطات نافذة واجهة المستخدم مقارنةً بمقياس أداء يبلغ 16.67 ملي ثانية لكل لقطة.
في وحدات معالجة الرسومات الأقل قوة، يمكن أن يكون معدل التعبئة المتاح (السرعة التي يمكن لوحدة معالجة الرسومات أن تملأ بها مخزن الإطارات) منخفضًا جدًا. مع زيادة عدد وحدات البكسل المطلوبة لرسم إطار، قد تستغرق وحدة معالجة الرسومات وقتًا أطول لمعالجة الأوامر الجديدة، ما يؤدي إلى انتظار بقية النظام إلى أن تتمكّن وحدة معالجة الرسومات من مواكبة ذلك.
تساعدك أداة إنشاء الملفات الشخصية في تحديد الحالات التي تكون فيها وحدة معالجة الرسومات مثقلة بمحاولة رسم وحدات البكسل أو مثقلة بالرسم الزائد.
تفعيل أداة تحليل الأداء
قبل البدء، تأكَّد من استخدام جهاز يعمل بالإصدار 4.1 من نظام التشغيل Android (المستوى 16 لواجهة برمجة التطبيقات) أو إصدار أحدث، ومن تفعيل خيارات المطوّرين. لبدء تسجيل بيانات عرض وحدة معالجة الرسومات على الجهاز أثناء استخدام تطبيقك، اتّبِع الخطوات التالية:
- على جهازك، انتقِل إلى الإعدادات وانقر على خيارات المطوّرين.
- في قسم المراقبة، اختَر عرض ملف تعريف GPU أو عرض ملف تعريف HWUI، حسب إصدار Android الذي يعمل على الجهاز.
- في مربّع الحوار "عرض رسومات وحدة معالجة الرسومات"، اختَر على الشاشة كأشرطة لتراكب الرسوم البيانية على شاشة جهازك.
- افتح التطبيق الذي تريد إنشاء ملف تعريف له.
فحص الناتج
في الصورة المكبّرة للرسم البياني "عرض الرسومات على وحدة معالجة الرسومات" في الملف الشخصي، كما هو موضّح في الشكل 1، يمكنك الاطّلاع على القسم الملوّن، كما هو معروض على الإصدار 6.0 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات 23).
الشكل 1. تم تكبير الرسم البياني "عرض رسومات GPU" في الملف الشخصي.
في ما يلي بعض الملاحظات حول الناتج:
- بالنسبة إلى كل تطبيق مرئي، تعرض الأداة رسمًا بيانيًا.
- يمثّل كل شريط عمودي على طول المحور الأفقي إطارًا، ويمثّل ارتفاع كل شريط عمودي مقدار الوقت الذي استغرقه عرض الإطار (بالمللي ثانية).
- يمثّل الخط الأخضر الأفقي 16.67 ملي ثانية. لتحقيق 60 لقطة في الثانية، يجب أن يبقى الشريط العمودي لكل لقطة تحت هذا الخط. في أي وقت يتجاوز فيه أحد الأشرطة هذا الخط، قد تحدث فواصل في الرسوم المتحركة.
- تُبرز الأداة اللقطات التي تتجاوز الحدّ البالغ 16.67 ملي ثانية من خلال جعل الشريط المقابل أعرض وأقل شفافية.
- يحتوي كل شريط على مكوّنات ملوّنة تتوافق مع مرحلة في مسار العرض. يختلف عدد المكوّنات حسب مستوى واجهة برمجة التطبيقات للجهاز.
يقدّم الجدول التالي أوصافًا لكل جزء من شريط عمودي في ناتج أداة تحليل الأداء عند استخدام جهاز يعمل بالإصدار 6.0 من نظام التشغيل Android والإصدارات الأحدث.
| مكوّن الشريط | مرحلة العرض | الوصف |
|---|---|---|
| Swap Buffers | تمثّل هذه السمة الوقت الذي تنتظر فيه وحدة المعالجة المركزية (CPU) وحدة معالجة الرسومات (GPU) لإنهاء عملها. إذا أصبح هذا الشريط طويلاً، يعني ذلك أنّ التطبيق يفرض عبئًا كبيرًا على وحدة معالجة الرسومات. | |
| مشكلة في الأمر | تمثّل هذه السمة الوقت الذي استغرقه عارض ثنائي الأبعاد في نظام التشغيل Android في إصدار أوامر إلى OpenGL لرسم وإعادة رسم قوائم العرض. يتناسب ارتفاع هذا الشريط طرديًا مع مجموع الوقت الذي تستغرقه كل قائمة عرض في التنفيذ، أي أنّ المزيد من قوائم العرض يؤدي إلى شريط أحمر أطول. | |
| المزامنة والتحميل | تمثّل هذه السمة الوقت المستغرَق لتحميل معلومات الصورة النقطية إلى وحدة معالجة الرسومات. يشير الجزء الكبير إلى أنّ التطبيق يستغرق وقتًا طويلاً في تحميل كميات كبيرة من الرسومات. | |
| الرسم |
تمثّل هذه السمة الوقت المستخدَم لتسجيل أوامر الرسم، مثل drawLine. في Compose، يمكن أن تتضمّن هذه المرحلة أحيانًا عمليات القياس والتنسيق. إذا كان هذا الشريط طويلاً، سجِّل بيانات تتبُّع الأداء على مستوى النظام وافحصها باستخدام Perfetto للحصول على تفاصيل مفصّلة.
|
|
| القياس / التخطيط | تمثّل هذه السمة مقدار الوقت المستغرَق في تحديد موضع مكوّنات واجهة المستخدم وتحديد حجمها خلال مرحلة التصميم، والتي تشمل تنفيذ أدوات تعديل القياس والموضع. يشير الجزء الكبير إلى عمليات حسابية معقّدة ضمن أدوات التعديل هذه أو إلى شجرة تخطيط عميقة بشكل مفرط تتطلّب إعادة حساب متكرّرة. | |
| التعامل مع الإدخال والحركة |
تمثّل هذه السمة مقدار الوقت المستغرَق في تقييم طلبات واجهة برمجة التطبيقات للصور المتحركة أو معالجة إدخال المؤشر وعمليات رد الاتصال المرتبطة به. إذا كان هذا الجزء كبيرًا، قد يشير ذلك إلى أنّ رسمًا متحركًا مخصّصًا أو دالة ردّ الاتصال الخاصة بالإدخال تستغرق وقتًا طويلاً جدًا في المعالجة. يحدث عادةً خلال هذا المقطع أيضًا حساب الحالة وتحديد البيانات أثناء التمرير خلال LazyColumn أو LazyRow، ويُعدّ ذلك مصدرًا أكثر شيوعًا لحالات التباطؤ في هذا المقطع.
|
|
| الوقت المتنوع / تأخير VSync | تمثّل هذه السمة الوقت الذي يستغرقه التطبيق في تنفيذ العمليات بين إطارين متتاليين. قد يكون ذلك مؤشرًا على أنّ هناك الكثير من عمليات المعالجة التي تتم في سلسلة التعليمات الخاصة بواجهة المستخدم، ويمكن نقلها إلى سلسلة تعليمات أخرى. |
الجدول 1. أشرطة المكوّنات في الإصدار 6.0 من نظام التشغيل Android والإصدارات الأحدث
لمزيد من المعلومات حول كيفية تفسير المعلومات التي تقدّمها أداة إنشاء الملفات الشخصية، يُرجى قراءة مقالة التحليل باستخدام أداة "رسم مخطط لعرض GPU".