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

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

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

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

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

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

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


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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

أجهزة مالي

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

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

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

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

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

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


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

أجهزة Adreno

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

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

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

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

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

لقطة شاشة لتطبيق يعتمد بشكل كبير على وحدة معالجة الرسومات مع نمط مرور التقديم الذي يساعد في تحديد حدود اللقطات
الشكل 16. تطبيق يعتمد بشكل كبير على وحدة معالجة الرسومات مع نمط معالجة عرض يساعد في تحديد حدود اللقطات

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

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

أجهزة مالي

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

لقطة شاشة لتتبُّع استخدام وحدة معالجة الرسومات ومسار "قائمة الانتظار في وحدة معالجة الرسومات" على جهاز Mali
الشكل 17. تتتبّع هذه المقاييس استخدام وحدة معالجة الرسومات وقائمة انتظار وحدة معالجة الرسومات على جهاز Mali.

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

لقطة شاشة للمقاطع الصوتية التي تتضمّن مقاطع وتلك التي لا تتضمّن مقاطع
الشكل 18. المقاطع والمقاطع غير المجزّأة:

أجهزة Adreno

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

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

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

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

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

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