Wuthering Waves هي لعبة تقمّص أدوار من فئة ألعاب الحركة العالية الدقّة، وهي من تطوير شركة Kuro Games. من المهم جدًا تحسين استهلاك الطاقة لتوفير تجربة مستخدم ممتازة بشكل مستدام خلال جلسات اللعب الطويلة.
طرح Android Studio أداة Power Profiler من Hedgehog (2023.1.1) التي يمكنها مساعدة المطوّرين في فهم بيانات استهلاك الطاقة استنادًا إلى أداة On Device Power Rails Monitor (ODPM).
باستخدام إمكانات تحليل استهلاك الطاقة في Android Studio، يمكنك أيضًا استخدام اختبار أ/ب بفعالية لقياس استهلاك الطاقة في ميزات تطبيق 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 النهائي). يوضّح الشكل التالي بالتفصيل هذا الانخفاض في استهلاك الطاقة عند ضبط عدد اللقطات في الثانية وإعدادات الرسومات بشكل ثابت.
لا تتوفّر بيانات "إدارة الطاقة الذكية" حاليًا إلا لأجهزة Pixel 6 والإصدارات الأحدث، ولكن يمكن ملاحظة التحسينات على جميع أجهزة Android من خلال مقاييس أخرى، بما في ذلك استخدام وحدة المعالجة المركزية ووحدة معالجة الرسومات وBatterystats. على سبيل المثال، شهدت شركة Kuro Games أيضًا انخفاضًا بنسبة% 9.6 في إجمالي استخدام وحدة معالجة الرسومات في المشهد نفسه على هاتف Oppo Reno 5.
البدء
يمكنك البدء من بيانات أداة تحليل الطاقة أو Perfetto Power Rails لحالات الاستخدام المتقدّمة.
تختلف أسماء مسارات الطاقة في نظام إدارة الطاقة (ODPM) حسب الجهاز. قد يكون اسم السكة على النحو التالي:
"S2S_VDD_G3D". يجب أن تكون لديك معرفة محددة بأجهزة الجهاز لتفسير بيانات مراقبة الطاقة المقابلة. اعتبارًا من المستوى 35 من Android API،
يمكنك استخدام PowerMonitor
من
getSupportedPowerMonitors
.
باستخدام PowerMonitor، يمكنك استرداد التعيين بين التصنيفات المفهومة للمستخدمين
وأسماء مسارات الطاقة الأولية التي يضبطها كلّ من المصنّعين الأصليّين للأجهزة.
للتحقّق من التحسين على الأجهزة التي لا تتضمّن ميزة "إدارة الطاقة الذكية للتطبيقات"، يمكنك استخدام سرعات ساعة وحدة المعالجة المركزية ووحدة معالجة الرسومات وتقديرات معدل نقل البيانات في الذاكرة كبديل لاستهلاك الطاقة.