شركة Kuro Games تخفض استهلاك الطاقة بنسبة% 9.68 من خلال أداة تحليل استهلاك الطاقة في "استوديو Android" وODPM للعبة Wuthering Waves

Wuthering Waves هي لعبة تقمّص أدوار من فئة ألعاب الحركة العالية الدقّة، وهي من تطوير شركة Kuro Games. من المهم جدًا تحسين استهلاك الطاقة لتوفير تجربة مستخدم ممتازة بشكل مستدام خلال جلسات اللعب الطويلة.

الشكل 1. لقطة شاشة للعبة Wuthering Waves

طرح Android Studio أداة Power Profiler من Hedgehog (2023.1.1) التي يمكنها مساعدة المطوّرين في فهم بيانات استهلاك الطاقة استنادًا إلى أداة On Device Power Rails Monitor (ODPM).

باستخدام إمكانات تحليل استهلاك الطاقة في Android Studio، يمكنك أيضًا استخدام اختبار أ/ب بفعالية لقياس استهلاك الطاقة في ميزات تطبيق Android (كما هو موضّح أدناه).

الشكل 2. لقطة شاشة لأداة تحليل الطاقة في "استوديو Android"

الإجراءات التي اتخذتها الشركة

بدأت شركة Kuro Games باستخدام أداة تحليل الطاقة في "استوديو Android" لفهم كيفية تأثير سلوكيات اللعبة في استهلاك الطاقة في الجهاز. أدت هذه التجربة إلى تطوير أداة مخصّصة استنادًا إلى Perfetto وODPM، مع دمج التحسينات التالية:

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

معالجة بيانات ODPM

للوصول إلى بيانات ODPM، استخدمت شركة Kuro Games Perfetto Trace Processor (Python) Metric API لمعالجة avg_used_power_mw data من جلسة مدتها 30 ثانية من مقياس android_powerrails، والذي تم تحديده على أنّه AndroidPowerRails في Pertetto metrics proto، بالتنسيق التالي:

سكة كهربائية جودة الرسومات عدد اللقطات في الثانية السطوع متوسط استهلاك الطاقة النسبة المئوية(لكل مسار / إجمالي)
power.rail.cpu.big عالية 30 ضعيفة 474.158 ملي واط 14.70%
power.rail.cpu.mid عالية 30 ضعيفة 470.916mW 14.60%
power.rail.cpu.little عالية 30 ضعيفة 438.662mW 13.60%
power.rail.gpu عالية 30 ضعيفة 346.761mW 10.70%
... ... ... ... ... ...

تحديد خطوط الطاقة ذات الاستهلاك العالي

لا تتوفّر قيمة قياسية لكل سكة طاقة. لتحديد خطوط الجهد التي تستهلك طاقة عالية، أنشأت شركة Kuro Games اختبارات أ/ب باستخدام حالات اختبار مختلفة، بما في ذلك حالات التوقف والجري والقتال. يمكن تحديد خطوط الطاقة المحدّدة ذات القيم العالية بشكل واضح من خلال مقارنة قيم خطوط الطاقة نفسها. من خلال مقارنة الاختلافات في السلوك على مستوى حالات الاختبار المختلفة، سيتم تحديد السبب الأساسي لمشكلة استهلاك الطاقة تدريجيًا.

التحسينات

باستخدام بيانات ODPM، يمكن لشركة Kuro Games قياس التحسين في كل سيناريو تحسين:

  • تغيير استراتيجية جدولة نواة وحدة المعالجة المركزية وضبط أولوية خيوط المعالجة المختلفة لتقليل عبء العمل على النوى الكبيرة
  • تجميع PSO (عنصر حالة مسار الإحالة) مسبقًا لتقليل Shader أثناء التشغيل تجميع عبء عمل وحدة المعالجة المركزية
  • تنفيذ عملية إزالة المجموعات التي يُحتمل أن تكون مرئية (PVS) لتقليل عبء عرض الرسومات على GPU
  • معالجة ميزة "إخفاء الأجسام بواسطة الظلال" بلا إنترنت لتقليل عبء عرض الرسومات على وحدة معالجة الرسومات

لمقارنة نتائج الاختبار في ظل ظروف متطابقة وقابلة للتكرار، استرجعت شركة Kuro Games بيانات ODPM في نموذج اختبار باستخدام المشهد الثلاثي الأبعاد والمنظور الكاميرا نفسهما بالمدة نفسها.

النتائج

من خلال الاستفادة من بيانات ميزة "إدارة الطاقة الذكية" وميزة "تحليل استهلاك الطاقة"، تمكّنت شركة Kuro Games من خفض إجمالي استهلاك الطاقة بنسبة %9.68، من 3233 ملي واط في إصدار أيلول (سبتمبر) (الإصدار 0904) إلى 2920 ملي واط في إصدار تشرين الثاني (نوفمبر) (الإصدار 1.4 النهائي). يوضّح الشكل التالي بالتفصيل هذا الانخفاض في استهلاك الطاقة عند ضبط عدد اللقطات في الثانية وإعدادات الرسومات بشكل ثابت.

الشكل 3. الاختلافات في بيانات مسار الطاقة بين إصدار أيلول (سبتمبر) وإصدار تشرين الثاني (نوفمبر)

لا تتوفّر بيانات "إدارة الطاقة الذكية" حاليًا إلا لأجهزة Pixel 6 والإصدارات الأحدث، ولكن يمكن ملاحظة التحسينات على جميع أجهزة Android من خلال مقاييس أخرى، بما في ذلك استخدام وحدة المعالجة المركزية ووحدة معالجة الرسومات وBatterystats. على سبيل المثال، شهدت شركة Kuro Games أيضًا انخفاضًا بنسبة% 9.6 في إجمالي استخدام وحدة معالجة الرسومات في المشهد نفسه على هاتف Oppo Reno 5.

البدء

يمكنك البدء من بيانات أداة تحليل الطاقة أو Perfetto Power Rails لحالات الاستخدام المتقدّمة.

تختلف أسماء مسارات الطاقة في نظام إدارة الطاقة (ODPM) حسب الجهاز. قد يكون اسم السكة على النحو التالي: "S2S_VDD_G3D". يجب أن تكون لديك معرفة محددة بأجهزة الجهاز لتفسير بيانات مراقبة الطاقة المقابلة. اعتبارًا من المستوى 35 من Android API، يمكنك استخدام PowerMonitor من getSupportedPowerMonitors. باستخدام PowerMonitor، يمكنك استرداد التعيين بين التصنيفات المفهومة للمستخدمين وأسماء مسارات الطاقة الأولية التي يضبطها كلّ من المصنّعين الأصليّين للأجهزة.

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

مصادر إضافية

تحسين كفاءة الطاقة