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