تحليل جدولة سلسلة المحادثات

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

  • مزامنة اللقطات
  • تعدد مؤشرات الترابط وموازاة مؤشرات الترابط
  • تحديد نواة وحدة المعالجة المركزية (CPU)

تعدُّد سلاسل التعليمات

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

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

لعبة تتضمّن سلسلة رئيسية وسلسلة عرض متوازيتَين بشكل جيد، بالإضافة إلى سلسلة الوحدات العاملة (worker thread) وسلسلة صوت
الشكل 1. لعبة تتضمّن سلسلة تعليمات رئيسية وسلسلة عرض متوازيتَين بشكل جيد، بالإضافة إلى سلسلة الوحدات العاملة وسلسلة تعليمات صوتية

تحديد نواة وحدة المعالجة المركزية (CPU)

أحد العوامل التي تؤثر بشكل كبير في أداء أحمال عمل وحدة المعالجة المركزية هو كيفية جدولة هذه الأحمال على النوى. قد يتم تقسيم ذلك إلى مكوّنَين:

  • ما إذا كانت سلاسل محادثات لعبتك تعمل على النواة الأنسب لعبء العمل
  • ما إذا كانت سلاسل تنفيذ اللعبة تنتقل بين النوى بشكل متكرر.

تستخدم الأجهزة الحديثة غالبًا بنية تُعرف باسم الحوسبة غير المتجانسة، حيث يكون للأجهزة مستويات أداء مختلفة:

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

يمكنك التحقّق من سلوك سلاسل وحدة المعالجة المركزية ضمن استخدام وحدة المعالجة المركزية من خلال تفعيل وحدة المعالجة المركزية في إعدادات الملف الشخصي عند تسجيل عملية تتبُّع. من خلال تكبير جزء من التتبُّع الذي تقل مدته عن 200 ملي ثانية، يمكنك الاطّلاع على العمليات الفردية التي يتم تشغيلها على نوى وحدة المعالجة المركزية في جهازك. عادةً، تتوافق النوى الأصغر مع الفهارس الأصغر (على سبيل المثال، وحدات المعالجة المركزية من 0 إلى 3)، بينما تتوافق النوى الأكبر مع الفهارس الأكبر (على سبيل المثال، وحدات المعالجة المركزية من 6 إلى 7)، أما النوى المتوسطة، إذا كانت متوفرة، فستشغل الفهارس بينهما (على سبيل المثال، وحدات المعالجة المركزية من 5 إلى 6). هذا هو الإجراء الشائع، ولكنّه ليس مضمونًا.

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

لعبة يتم تشغيل سلسلة المحادثات الرئيسية وسلسلة محادثات العرض فيها بشكل أساسي على النوى الكبيرة (وحدة المعالجة المركزية 6-7)، ويظهر ذلك باللون الأزرق الفاتح
الشكل 2. لعبة يتم تشغيل سلسلة المحادثات الرئيسية وسلسلة محادثات العرض بشكل أساسي على النوى الكبيرة (وحدات المعالجة المركزية 6 و7)، ويتم عرضها باللون الأزرق الفاتح

يمكنك أيضًا مراقبة ما إذا كانت سلاسل المحادثات تنتقل بين النوى. تتسبّب عمليات التبديل الأساسية هذه في بعض النفقات العامة الناتجة عن تبديل السياق وفقدان الحالة مع ذاكرة التخزين المؤقت/السجلات الأساسية.

لعبة تتضمّن سلسلة التعليمات الرئيسية (Thread-7) وسلسلة تعليمات العرض (Thread-8) التي تتنقّل بين النوى، ويظهر ذلك باللون الأرجواني
الشكل 3. لعبة تتضمّن سلسلة التعليمات الرئيسية (Thread-7) وسلسلة تعليمات العرض (Thread-8) التي يتم التبديل بينها وبين النوى، ويظهر ذلك باللون الأرجواني

يؤدي ضبط ربط وحدة المعالجة المركزية (CPU) بسلسلة تعليمات إلى توجيه النظام لجدولة سلسلة التعليمات هذه على النواة المحدّدة عندما تكون لعبتك في المقدّمة. هناك عدة عوامل يجب مراعاتها عند إجراء ذلك:

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

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

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

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