Wuthering Waves एक हाई फ़िडेलिटी ऐक्शन आरपीजी गेम है. इसे Kuro Games ने डेवलप किया है. गेमिंग के लंबे सेशन के लिए, उपयोगकर्ताओं को बेहतर अनुभव देने के लिए, बिजली की खपत को ऑप्टिमाइज़ करना ज़रूरी है.
Android Studio ने Hedgehog (2023.1.1) से पावर प्रोफ़ाइलर को लॉन्च किया है. इससे डेवलपर को डिवाइस पर पावर रेल मॉनिटर (ODPM) के आधार पर, बिजली की खपत के डेटा को समझने में मदद मिल सकती है.
Android Studio में पावर प्रोफ़ाइलिंग की सुविधाओं की मदद से, अपने Android ऐप्लिकेशन की सुविधाओं के लिए, बिजली की खपत की A/B टेस्टिंग भी की जा सकती है. इसकी जानकारी नीचे दी गई है.
उन्होंने क्या किया
Kuro Games ने Android Studio के Power Profiler टूल का इस्तेमाल करके यह समझा कि गेम के व्यवहार से डिवाइस की बैटरी खपत पर क्या असर पड़ता है. इस अनुभव के आधार पर, उन्होंने Perfetto और ODPM के आधार पर, अपने हिसाब से एक टूल बनाया. इसमें ये बेहतरियां शामिल की गई हैं:
- पसंद के मुताबिक व्यू - डेवलपर, पावर रेल को फ़िल्टर कर सकता है और समयसीमा को पहले से तय कर सकता है.
- बेहतर रखरखाव - डेवलपर, अपने कस्टमाइज़ किए गए क्यूए सिस्टम में, बिजली की खपत का डेटा अपलोड कर सकता है. साथ ही, गेम के सभी वर्शन के डेटा की तुलना कर सकता है.
ODPM डेटा को प्रोसेस करना
ODPM डेटा को ऐक्सेस करने के लिए, Kuro Games ने Perfetto Trace Processor (Python) Metric API का इस्तेमाल किया. इससे, android_powerrails
मेट्रिक से 30 सेकंड के सेशन के avg_used_power_mw data
को प्रोसेस किया गया. Pertetto मेट्रिक प्रोटो में, AndroidPowerRails
को इस फ़ॉर्मैट में परिभाषित किया गया है:
Power Rail | ग्राफ़िक की क्वालिटी | एफ़पीएस | स्क्रीन की रोशनी | औसत बिजली की खपत | प्रतिशत(हर रेल / कुल) |
---|---|---|---|---|---|
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 ने अलग-अलग टेस्ट केस का इस्तेमाल करके A/B टेस्ट बनाए. इनमें, आइडल, रनिंग, और मुकाबला करने की स्थिति शामिल है. ज़्यादा वैल्यू वाली खास पावर रेल की पहचान करने के लिए, एक ही पावर रेल की वैल्यू की तुलना करें. अलग-अलग टेस्ट केस में व्यवहार में हुए अंतर की तुलना करके, बिजली की खपत से जुड़ी समस्या की मुख्य वजह का पता धीरे-धीरे चल जाएगा.
ऑप्टिमाइज़ेशन
ODPM डेटा की मदद से, Kuro Games हर ऑप्टिमाइज़ेशन से जुड़े बदलाव को मेज़र कर सकता है:
- सीपीयू कोर शेड्यूलिंग की रणनीति में बदलाव करना और अलग-अलग टास्क की प्राथमिकता में बदलाव करना, ताकि बड़े कोर का वर्कलोड कम किया जा सके
- PSO (पाइपलाइन स्टेट ऑब्जेक्ट) को पहले से कंपाइल करना, ताकि सीपीयू के रनटाइम शेडर को कंपाइल करने का वर्कलोड कम हो
- जीपीयू रेंडरिंग के वर्कलोड को कम करने के लिए, संभावित तौर पर दिखने वाले सेट (पीवीएस) को हटाने की सुविधा लागू करना
- जीपीयू रेंडरिंग के वर्कलोड को कम करने के लिए, ऑफ़लाइन शैडो ऑक्लूज़न कलिंग को बेक करना
एक जैसी और दोबारा इस्तेमाल की जा सकने वाली स्थितियों में, टेस्ट के नतीजों की तुलना करने के लिए, Kuro Games ने एक ही अवधि के साथ एक ही 3D सीन और कैमरे के पर्सपेक्टिव का इस्तेमाल करके, टेस्ट केस में ODPM डेटा को वापस पाया.
नतीजे
ODPM और पावर प्रोफ़ाइलिंग के डेटा का इस्तेमाल करके, Kuro Games ने कुल पावर खर्च में 9.68% की कमी की है. सितंबर रिलीज़ (0904 वर्शन) में यह खर्च 3233 एमडब्ल्यू था, जो नवंबर रिलीज़ (1.4 फ़ाइनल वर्शन) में घटकर 2920 एमडब्ल्यू हो गया. यहां दिए गए आंकड़े में, एक जैसी FPS और ग्राफ़िक सेटिंग के तहत, बिजली की खपत में हुई कमी के बारे में बताया गया है.
फ़िलहाल, ओडीपीएम का डेटा सिर्फ़ Pixel 6 और उसके बाद के वर्शन वाले डिवाइसों के लिए उपलब्ध है. हालांकि, सीपीयू के इस्तेमाल, जीपीयू के इस्तेमाल, और Batterystats जैसी अन्य मेट्रिक की मदद से, सभी Android डिवाइसों पर सुधार देखे जा सकते हैं. उदाहरण के लिए, Kuro Games को Oppo Reno 5 के लिए, उसी सीन में GPU के इस्तेमाल में कुल 9.6% की कमी भी दिखी.
शुरू करें
बेहतर इस्तेमाल के उदाहरणों के लिए, Power Profiler या Perfetto Power Rails डेटा से शुरुआत की जा सकती है.
ODPM पावर रेल के नाम, डिवाइस के हिसाब से होते हैं. रेल का नाम "S2S_VDD_G3D" जैसा हो सकता है. इससे जुड़े पावर मॉनिटर के डेटा का विश्लेषण करने के लिए, डिवाइस के हार्डवेयर के बारे में खास जानकारी ज़रूरी है. Android एपीआई लेवल 35 से, getSupportedPowerMonitors
के PowerMonitor
का इस्तेमाल किया जा सकता है.
PowerMonitor की मदद से, ऐसे लेबल और रॉ पावर रेल के नामों के बीच मैपिंग देखी जा सकती है जिन्हें इंसान पढ़ सकता है. ये नाम, हर OEM ने सेट किए हैं.
ODPM के बिना काम करने वाले डिवाइसों पर हुए सुधार की पुष्टि करने के लिए, सीपीयू क्लॉक, जीपीयू क्लॉक, और मेमोरी बैंडविड्थ के अनुमान का इस्तेमाल, बिजली की खपत के प्रॉक्सी के तौर पर किया जा सकता है.
अन्य संसाधन
बैटरी लाइफ़ को ऑप्टिमाइज़ करना