هناك بعض الأمور التي يجب مراعاتها لتحديد ما إذا كانت سلاسل عمليات معالجة لعبتك قد تم استخدامها وجدولتها بشكل مناسب لتحقيق أفضل أداء.
- مستوى سرعة عرض اللقطة
- تعدد سلاسل المحادثات وموازاة السلاسل
- وحدة المعالجة المركزية ذات الاهتمامات المشتركة
تعدد سلاسل المحادثات
تستخدم العديد من الألعاب ومحركات الألعاب سلاسل المحادثات المتعددة لتقسيم عمل وحدة المعالجة المركزية إلى مهام منطقية يمكن تشغيلها بشكل مستقل إلى حد ما. ومن بين الإعدادات النموذجية هي سلسلة محادثات لعبة للإدخال ومنطق اللعبة، وسلسلة عرض لإعداد وإرسال الكائنات التي سيتم رسمها، وسلاسل محادثات العمال للمهام الفرعية الأخرى مثل الرسوم المتحركة أو الصوت.
ننصحك باستخدام سلاسل المحادثات بشكل موازٍ للاستفادة من مزايا سلاسل المحادثات المتعددة في الأداء. ومن الأمثلة على ذلك سيناريو يتم فيه تشغيل سلاسل محادثات اللعبة وعرض سلاسل البيانات بشكل متزامن جزئيًا أو كليًا على نوى مختلفة. لن يكون ذلك ممكنًا دائمًا، كما هو الحال في الحالات التي تعتمد فيها البيانات التي تتم مشاركتها، ومع ذلك، قد يؤدي ذلك كلما أمكن ذلك إلى انخفاض أوقات استخدام وحدة المعالجة المركزية (CPU)، ما قد يؤدي إلى ارتفاع عدد اللقطات في الثانية.
![هي لعبة تحتوي على سلسلة تعليمات رئيسية وأخرى عرض متوازية، بالإضافة إلى سلسلة تعليمات وسلسلة محادثات صوتية.](https://developer.android.com/static/images/agi/threads-scheduling-images/sample_multithreading.png?authuser=6&hl=ar)
وحدة المعالجة المركزية ذات الاهتمامات المشتركة
أحد العوامل التي تؤثر بشكل كبير في أداء أعباء عمل وحدة المعالجة المركزية (CPU) هي طريقة جدولتها على النواة. يمكن تقسيم ذلك إلى عنصرين:
- ما إذا كانت سلاسل محادثات لعبتك تعمل على النواة الأكثر ملاءمةً لأعباء العمل
- تحدِّد هذه السياسة ما إذا كانت سلاسل محادثات لعبتك يتم التبديل بين النواة بشكل متكرر.
تستخدم الأجهزة الحديثة بنية تسمى الحوسبة غير المتجانسة، حيث يكون للنواة مستويات أداء مختلفة:
- يوفّر نواة واحدة أو أكثر من النواة أداءً مثاليًا في الأداء، ولكنه يستهلك المزيد من الطاقة. تسمى هذه أحيانًا أنوية "كبيرة".
- تحقّق النوى الأخرى أعلى مستوى من الأداء، ولكنها أكثر توفيرًا للطاقة. وتسمى هذه أحيانًا أنوية "صغيرة".
- اختياريًا، يوفّر واحد أو أكثر من النواة التوازن بين الأداء والقوة. وتُسمى هذه أحيانًا النوى "المتوسطة".
يمكنك التحقق من سلوك سلسلة وحدة المعالجة المركزية (CPU) ضمن استخدام وحدة المعالجة المركزية (CPU) من خلال تفعيل وحدة المعالجة المركزية (CPU) في إعدادات الملف الشخصي عند تتبُّع عملية التتبُّع. ويمكنك عرض العمليات الفردية التي تعمل على نوى وحدة المعالجة المركزية (CPU) لجهازك، وذلك عن طريق تكبير قسم من آثار الأنشطة أقل من 200 ملي ثانية. تتوافق عادةً النوى الأصغر مع فهارس أصغر (على سبيل المثال، وحدات المعالجة المركزية (CPU) من 0 إلى 3)، بينما تتوافق النوى الأكبر مع فهارس أعلى (على سبيل المثال، وحدات المعالجة المركزية (CPU) من "6 إلى 7") وتشغل النوى الوسطى في حال توفّرها فهارس (على سبيل المثال، وحدات المعالجة المركزية (CPU) من "5 إلى 6"). يكون ذلك وفقًا للاعتراف الشائع، ولكنه ليس ضمانًا.
إذا وجدت أنه تتم جدولة بعض سلاسل المحادثات على وحدات معالجة مركزية (CPU) لا تفي باحتياجاتها من حيث الأداء أو الطاقة، يمكنك ضبط تقارب وحدة المعالجة المركزية (CPU) لهذه السلاسل يدويًا.
![لعبة مزوّدة بسلسلة رئيسية وعرض تعمل بشكل أساسي على نوى كبيرة (وحدة معالجة مركزية من 6 إلى 7)، وتظهر بلون أزرق فاتح](https://developer.android.com/static/images/agi/threads-scheduling-images/sample_bigcores.png?authuser=6&hl=ar)
يمكنك أيضًا ملاحظة ما إذا كانت سلاسل المحادثات تبدِّل بين النوى. وتتحمل مفاتيح التبديل الأساسية هذه بعض النفقات العامة بسبب تبديل السياق وفقدان الحالة في ذاكرة التخزين المؤقت/التسجيلات الخاصة بالنواة.
![لعبة تتضمّن سلسلة تعليمات (Thread-7) وسلسلة عرض (Thread-8) تعمل على التبديل بين نوى الاختبار، وتظهر باللون الأرجواني](https://developer.android.com/static/images/agi/threads-scheduling-images/sample_coreswitching.png?authuser=6&hl=ar)
إنّ ضبط تقارب وحدة المعالجة المركزية (CPU) لسلسلة محادثات يوجِّه النظام إلى جدولته على النواة المحدّدة أثناء تشغيل لعبتك في المقدّمة. هناك عدة عوامل يجب مراعاتها عند إجراء ذلك:
- لا يمكن لبرنامج النظام الأساسي ضبط موضع المهمة ديناميكيًا لعوامل وقت التشغيل مثل التحميل والتقييد الحراري.
قد يؤدي اختبار الأداء على أجهزة مختلفة إلى تقديم خصائص أداء مختلفة جدًا، خاصةً إذا كانت الأجهزة تختلف اختلافًا كبيرًا حسب نقطة السعر أو تاريخ الإصدار.
قد يشغِّل جهاز أحدث أو أكثر تكلفة عبء عمل معيّنًا بشكلٍ مريح على وحدة أساسية صغيرة، ولكن قد يحتاج جهاز أقدم أو أكثر تكلفة إلى نواة أكبر للوفاء بالمواعيد النهائية لحمل العمل نفسه.
وقد يؤدي فرض التقارب على النوى الكبيرة إلى زيادة استنزاف البطارية والحمل الحراري بدون داعٍ.
ولهذه الأسباب، يُفضل عمومًا تجنب ضبط التقاربات باستخدام وحدة المعالجة المركزية (CPU) يدويًا.