تقدير أوقات معالجة إطارات وحدة المعالجة المركزية (CPU) ووحدة معالجة الرسومات

يُعدّ تقدير أوقات معالجة إطارات وحدة المعالجة المركزية ووحدة معالجة الرسومات (أوقات عرض الإطارات) أمرًا ضروريًا لفهم أداء تطبيقك وتحديد المشاكل التي تؤدي إلى بطء الأداء. عند إنشاء ملف تعريف لتطبيق باستخدام AGI، يوفّر "مُنشئ ملفات تعريف النظام" بيانات التتبُّع التي يمكنك استخدامها لتقدير أوقات عرض الإطارات.

أوقات وحدة المعالجة المركزية

في AGI، يمكنك الاطّلاع على إجمالي أوقات عرض الإطارات النشطة لوحدة المعالجة المركزية في مسار وحدة المعالجة المركزية لـ ملف تعريف النظام.

إجمالي وقت وحدة المعالجة المركزية

لقياس إجمالي وقت وحدة المعالجة المركزية المستخدَم، اختَر النطاق الزمني الذي يتضمّن الوقت بين أحداث إرسال الإطارات المتتالية. أحداث إرسال الإطارات هي eglSwapBuffers (بالنسبة إلى OpenGL) وvkQueuePresentKHR (بالنسبة إلى Vulkan).

لقطة شاشة لأحداث eglSwapBuffer
الشكل 1. الوقت بين حدثَين من أحداث eglSwapBuffer


لقطة شاشة لحدث vkQueuePresentKHR
الشكل 2. الوقت بين حدثَين من أحداث vkQueuePresentKHR

هذا القياس هو تقدير لإجمالي وقت وحدة المعالجة المركزية، ولكنّه لا يمثّل بالضرورة وقت وحدة المعالجة المركزية النشط. على سبيل المثال، في التطبيقات التي تعتمد على وحدة معالجة الرسومات، قد تنتظر وحدة المعالجة المركزية إلى أن تنتهي وحدة معالجة الرسومات من عملها قبل إرسال إطار جديد. يحدث ذلك غالبًا عندما يستغرق حدث dequeueBuffer أو eglSwapBuffer (بالنسبة إلى OpenGL) أو vkQueuePresent (بالنسبة إلى Vulkan) جزءًا كبيرًا من وقت وحدة المعالجة المركزية. يتم تضمين وقت الانتظار في إجمالي وقت وحدة المعالجة المركزية، ولكن ليس في وقت وحدة المعالجة المركزية النشط.

لقطة شاشة تعرض مقدارًا كبيرًا من وقت عدم النشاط أثناء أحداث dequeueBuffer وeglSwapBuffer
الشكل 3. مقدار كبير من وقت عدم نشاط وحدة المعالجة المركزية أثناء dequeueBuffer و eglSwapBuffer أحداث.

وقت وحدة المعالجة المركزية النشط

يحدّد وقت وحدة المعالجة المركزية النشط متى تكون وحدة المعالجة المركزية بصدد تشغيل رمز التطبيق بدون أن تكون في حالة عدم النشاط.

لقياس وقت وحدة المعالجة المركزية النشط، اطّلِع على الشرائح قيد التشغيل أعلى أحداث وحدة المعالجة المركزية مباشرةً. احسِب جميع أجزاء التتبُّع بين حدثَي إرسال الإطارات اللذَين يكونان في الحالة قيد التشغيل. تأكَّد من تضمين سلاسل المحادثات العاملة.

لقطة شاشة لفترتَين من وقت وحدة المعالجة المركزية يمكن استخدامهما لقياس وقت وحدة المعالجة المركزية النشط
الشكل 5. فترتان من وقت وحدة المعالجة المركزية يمكن استخدامهما لقياس وقت وحدة المعالجة المركزية النشط


لقطة شاشة لتطبيق متعدد سلاسل التعليمات يتضمّن سلاسل تعليمات أخرى تعمل بينما تكون سلسلة التعليمات الرئيسية غير نشطة
الشكل 6. تطبيق متعدد سلاسل المحادثات يتضمّن سلاسل محادثات عاملة أخرى بينما تكون سلسلة المحادثات الرئيسية في حالة عدم النشاط

هناك طريقة أخرى لقياس وقت وحدة المعالجة المركزية النشط وهي الاطّلاع على شرائح التطبيق في مسارات وحدة المعالجة المركزية. تشير هذه الشرائح إلى وقت تشغيل وحدة المعالجة المركزية وتتطابق مع الشرائح قيد التشغيل.

لقطة شاشة تعرض حالة التشغيل لسلسلة محادثات مثبّتة تتطابق مع مسار وحدة المعالجة المركزية.
الشكل 7. تتطابق حالة التشغيل لسلسلة المحادثات المثبَّتة مع مسار وحدة المعالجة المركزية.

للمساعدة في تحديد شرائح التطبيق، يمكنك إضافة علامات ATrace إلى تطبيقك. سيؤدي ذلك إلى عرض العلامات في مسار وحدة المعالجة المركزية في "مُنشئ ملفات تعريف النظام".

لقطة شاشة لشرائح ATrace معروضة على مسار وحدة المعالجة المركزية
الشكل 8. شرائح ATrace معروضة على مسار وحدة المعالجة المركزية

تقدير أوقات عرض الإطارات لوحدة معالجة الرسومات

لتقدير أوقات عرض الإطارات لوحدة معالجة الرسومات، يمكنك استخدام شرائح وحدة معالجة الرسومات أو عدّادات وحدة معالجة الرسومات في "مُنشئ ملفات تعريف النظام". يكون التقدير أكثر دقة عند استخدام شرائح وحدة معالجة الرسومات.

شرائح وحدة معالجة الرسومات

إذا كانت معلومات شريحة وحدة معالجة الرسومات متوفّرة في "مُنشئ ملفات تعريف النظام"، يمكنك الحصول على معلومات دقيقة جدًا عن وقت عرض الإطارات لوحدة معالجة الرسومات من خلال قياس إجمالي الوقت الذي يستغرقه تطبيقك في العمل على المهام المرتبطة بإطار واحد.

أجهزة Mali

على أجهزة Mali، تتضمّن شرائح وحدة معالجة الرسومات مسارات الجزء وغير الجزء، و أحيانًا مسارات تكميلية غير الجزء. بالنسبة إلى الإطارات الأقل تعقيدًا، يكون عمل الجزء وغير الجزء متسلسلاً، لذا يمكن التمييز بين عمل إطار وآخر من خلال البحث عن فجوات بين عمل وحدة معالجة الرسومات النشط.

كبديل، إذا كنت على دراية بالعمل الذي يتم إرساله إلى وحدة معالجة الرسومات، فإنّ تحديد نمط عمليات العرض المرسَلة يوفّر معلومات عن وقت بدء الإطار وانتهائه.

لقطة شاشة لعدة لقطات يتم تنفيذها بالتسلسل
الشكل 9. إطارات متعدّدة يتم تنفيذها بالتسلسل
لقطة شاشة يتم فيها تكبير "الذكاء الاصطناعي العام" على عمل إطار فردي
الشكل 10. تكبير عمل إطار فردي

بالنسبة إلى التطبيقات التي تتضمّن سير عمل لوحدة معالجة الرسومات أكثر توازيًا، يمكنك الحصول على أوقات عرض الإطارات لوحدة معالجة الرسومات من خلال البحث عن جميع الإطارات التي لها submissionID نفسه في لوحة الاختيار لكل شريحة.

بالنسبة إلى التطبيقات المستندة إلى Vulkan، يمكن استخدام عمليات إرسال متعدّدة لإنشاء إطار. يمكنك تتبُّع معرّفات الإرسال باستخدام مسار أحداث Vulkan الذي يحتوي على شريحة لكل عملية إرسال. سيؤدي اختيار شريحة إرسال إلى تمييز جميع شرائح نشاط وحدة معالجة الرسومات التي تتطابق مع عملية الإرسال.

لقطة شاشة لعبء عمل وحدة معالجة الرسومات المتوازية، حيث يمكن أن يتداخل العمل على إطار واحد مع إطار آخر.
الشكل 11. حِمل عمل متوازٍ لوحدة معالجة الرسومات، حيث يمكن أن يتداخل العمل على إطار واحد مع إطار آخر


لقطة شاشة لعدّة أحداث Vulkan تم اختيارها لإطار
الشكل 12. تم اختيار عدة أحداث Vulkan لإطار واحد.

أجهزة Adreno

على أجهزة Adreno، تظهر شرائح وحدة معالجة الرسومات في مسار قائمة انتظار وحدة معالجة الرسومات 0 ويتم تمثيلها دائمًا بالتسلسل، لذا يمكنك الاطّلاع على جميع الشرائح التي تمثّل عمليات العرض لإطار واستخدامها لقياس أوقات عرض الإطارات لوحدة معالجة الرسومات.

لقطة شاشة لعدة لقطات يتم تنفيذها بالتسلسل
الشكل 13. إطارات متعدّدة يتم تنفيذها بالتسلسل
لقطة شاشة تم فيها تكبير "الذكاء الاصطناعي التوليدي" على إطار يتضمّن عدة عمليات عرض.
الشكل 14. تكبير إطار يتضمّن عمليات عرض متعدّدة

على غرار سيناريو Mali الموضّح سابقًا، إذا كان التطبيق يستخدم Vulkan، يوفّر مسار أحداث Vulkan معلومات عن العمل الذي يتم إرساله لتنفيذ الإطار. لتمييز عمليات العرض، انقر على شرائح أحداث Vulkan المرتبطة بالإطار.

لقطة شاشة لتطبيق يستند إلى Vulkan تم فيها اختيار أحداث Vulkan للإطار
الشكل 15. تطبيق مستند إلى Vulkan تم فيه اختيار أحداث Vulkan لإطار واحد

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

لقطة شاشة لتطبيق يعتمد بشكل كبير على وحدة معالجة الرسومات (GPU) ويتضمّن نمطًا لتمرير العرض يساعد في تحديد حدود الإطارات
الشكل 16. تطبيق يعتمد بشكل كبير على وحدة معالجة الرسومات ويتضمّن نمط عملية عرض يساعد في تحديد حدود الإطار.

عدّادات وحدة معالجة الرسومات

إذا لم تكن معلومات شريحة وحدة معالجة الرسومات متوفّرة في عملية التتبُّع، يمكنك تقدير وقت عرض الإطارات لوحدة معالجة الرسومات باستخدام مسارات عدّاد وحدة معالجة الرسومات.

أجهزة Mali

على أجهزة Mali، يمكنك استخدام مسار استخدام وحدة معالجة الرسومات لتقدير وقت عرض الإطارات لوحدة معالجة الرسومات لتطبيق لا يستخدم وحدة معالجة الرسومات بشكل مكثّف. عندما تكون التطبيقات أقل استخدامًا لوحدة معالجة الرسومات، فإنّها تتضمّن فترات منتظمة من النشاط العالي والمنخفض لوحدة معالجة الرسومات، بدلاً من النشاط العالي باستمرار. لتقدير أوقات عرض الإطارات لوحدة معالجة الرسومات باستخدام مسار استخدام وحدة معالجة الرسومات ، قِس مدة فترات النشاط العالي في المسار.

لقطة شاشة لاستخدام وحدة معالجة الرسومات (GPU) ومسارات قائمة انتظار وحدة معالجة الرسومات (GPU) على جهاز Mali
الشكل 17. مسارا "استخدام وحدة معالجة الرسومات" و"قائمة انتظار وحدة معالجة الرسومات" على جهاز Mali

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

لقطة شاشة للمقاطع المجزّأة وغير المجزّأة
الشكل 18. مسارا الجزء وغير الجزء

أجهزة Adreno

على أجهزة Adreno، إذا لم يكن التطبيق يستخدم وحدة معالجة الرسومات بشكل مكثّف، يمكنك تقدير أوقات عرض الإطارات لوحدة معالجة الرسومات بالطريقة نفسها التي يمكنك بها استخدام أجهزة Mali في القسم السابق.

لقطة شاشة للنسبة المئوية لاستخدام وحدة معالجة الرسومات ومسارات قائمة انتظار وحدة معالجة الرسومات على جهاز Adreno
الشكل 19. مسارا "النسبة المئوية لاستخدام وحدة معالجة الرسومات" و"قائمة انتظار وحدة معالجة الرسومات" على جهاز Adreno

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

لقطة شاشة لـ "تعليمات Vertex" / "المسار الثاني"
الشكل 20. مسار تعليمات الرأس في الثانية

قد توفّر هذه المسارات الأخرى معلومات مماثلة:

  • الرؤوس المظلّلة في الثانية
  • الأجزاء المظلّلة في الثانية
  • النسبة المئوية للوقت الذي يتم فيه تظليل الرؤوس
  • النسبة المئوية للوقت الذي يتم فيه تظليل الأجزاء