इवेंट और प्रोग्राम

पूरी तरह से ऑप्टिमाइज़ किया गया: परफ़ॉर्मेंस स्पॉटलाइट हफ़्ते का समापन

पढ़ने में 3 मिनट लगेंगे
बेन वेइस की प्रोफ़ाइल देखें चार्ल्स मंगर की प्रोफ़ाइल देखें
Ben Weiss & Sara Hamilton

हमने पिछले हफ़्ते, Android ऐप्लिकेशन को तेज़, छोटा, और ज़्यादा स्टेबल बनाने के लिए, सबसे सही तरीके और दिशा-निर्देश शेयर किए. हमने R8 ऑप्टिमाइज़र और प्रोफ़ाइल गाइडेड ऑप्टिमाइज़ेशन की बुनियादी सुविधाओं से लेकर, Jetpack Compose की मदद से परफ़ॉर्मेंस को बेहतर बनाने और ऐप्लिकेशन की परफ़ॉर्मेंस को बेहतर बनाने के लिए नई गाइड तक, कम मेहनत में ज़्यादा असर डालने वाले उन सभी टूल के बारे में बताया है जिनकी मदद से, बेहतर परफ़ॉर्म करने वाला ऐप्लिकेशन बनाया जा सकता है.

यह पोस्ट, आपके इंडेक्स और रोडमैप के तौर पर काम करती है. इससे आपको जब भी ऑप्टिमाइज़ेशन करना हो, तब इन संसाधनों पर दोबारा जाने में मदद मिलती है. यहां हमारी साथ में की गई यात्रा से जुड़ी पांच मुख्य बातें दी गई हैं.

अपने ऐप्लिकेशन को तेज़ी से चलाने के लिए, R8 ऑप्टिमाइज़र का इस्तेमाल करना

सबसे ज़्यादा असर डालने वाला और कम मेहनत वाला बदलाव, R8 ऑप्टिमाइज़र को पूरी तरह से चालू करना है. यह सिर्फ़ ऐप्लिकेशन के साइज़ को कम नहीं करता है. यह पूरे प्रोग्राम को गहराई से ऑप्टिमाइज़ करता है, ताकि आपके कोड को बेहतर तरीके से फिर से लिखा जा सके. Keep के नियमों को फिर से देखें और R8 को इंजीनियरिंग से जुड़े कामों में वापस लाएं.

R8 ऑप्टिमाइज़र के बारे में, अपडेट किया गया और ज़्यादा जानकारी वाला हमारा नया दस्तावेज़ आपकी मदद करेगा.

R8 के फ़ुल मोड को चालू करने के बाद, Reddit ने पाया कि कोल्ड स्टार्टअप 40% तेज़ी से हुआ और एएनआर से जुड़ी गड़बड़ियों में 30% की कमी आई.

हमारे ब्लॉग पर जाकर, पूरी केस स्टडी पढ़ी जा सकती है.

image.png

Disney+ के इंजीनियर, ऐप्लिकेशन की परफ़ॉर्मेंस को बेहतर बनाने के लिए काम कर रहे हैं. साथ ही, वे ऐप्लिकेशन के उपयोगकर्ता अनुभव को ऑप्टिमाइज़ कर रहे हैं. कभी-कभी छोटे-छोटे बदलावों से भी बड़ा असर पड़ सकता है. R8 कॉन्फ़िगरेशन की जांच करते समय टीम को पता चला कि -dontoptimize फ़्लैग का इस्तेमाल किया जा रहा है. इस फ़्लैग को हटाने के बाद, Disney+ की टीम ने अपने ऐप्लिकेशन की परफ़ॉर्मेंस में काफ़ी सुधार देखा.

image.png

इसलिए, अगली बार जब कोई आपसे ऐप्लिकेशन की परफ़ॉर्मेंस को बेहतर बनाने के बारे में पूछे, तो उसे इस पोस्ट का लिंक भेजें.

पहले दिन के हमारे ब्लॉग में इस बारे में ज़्यादा पढ़ें: अपने ऐप्लिकेशन को छोटा करने, ऑप्टिमाइज़ करने, और तेज़ी से ट्रैक करने के लिए R8 का इस्तेमाल करना

बेहतर परफ़ॉर्मेंस के लिए सुझाव देना

बेसलाइन प्रोफ़ाइलें, Just in Time कंपाइलेशन की ज़रूरत को खत्म कर देती हैं. इससे स्टार्टअप की स्पीड, स्क्रोलिंग, ऐनिमेशन, और रेंडरिंग की परफ़ॉर्मेंस बेहतर होती है. स्टार्टअप प्रोफ़ाइल की मदद से, ऐप्लिकेशन को और भी कम समय में शुरू किया जा सकता है. इसके लिए, यह आपकी ऐप्लिकेशन की classes.dex फ़ाइलों को एक क्रम में लगाता है.

ऐप्लिकेशन की परफ़ॉर्मेंस के लिए बेसलाइन प्रोफ़ाइलें कितनी ज़रूरी हैं, इस बारे में ज़्यादा जानने के लिए, Meta का इंजीनियरिंग ब्लॉग पढ़ें. इसमें बताया गया है कि बेसलाइन प्रोफ़ाइलों की मदद से, उनके ऐप्लिकेशन की परफ़ॉर्मेंस से जुड़ी कई अहम मेट्रिक में 40%तक सुधार हुआ.

हम Jetpack Compose 1.10 में, Jetpack Compose की परफ़ॉर्मेंस को बेहतर बनाने के लिए काम कर रहे हैं. जटिल सूची आइटम के साथ काम करते समय, स्क्रोलिंग में रुकावट न आने देने के लिए, कंपोज़िशन को रोकने की सुविधा और ज़रूरत के मुताबिक कैश विंडो जैसी सुविधाएं बहुत ज़रूरी होती हैं. #TheAndroidShow का नया एपिसोड देखें. इसमें हमने इस बारे में ज़्यादा जानकारी दी है.

ज़्यादा जानने के लिए, बुधवार को पब्लिश हुआ हमारा ब्लॉग पढ़ें: परफ़ॉर्मेंस से जुड़ी ज़्यादा जानकारी

परफ़ॉर्मेंस को मेज़र करना, 1, 2, 3 गिनने जितना आसान हो सकता है

जिस चीज़ को मेज़र नहीं किया जाता उसे मैनेज नहीं किया जा सकता. हमारी परफ़ॉर्मेंस लेवलिंग गाइड में, मेज़रमेंट की प्रोसेस को पांच चरणों में बांटा गया है. इसमें आसानी से उपलब्ध डेटा से लेकर, ऐडवांस लोकल टूल तक की जानकारी दी गई है.

हम लेवल 1 से शुरू करेंगे. इसमें हम आपको Android की ज़रूरी जानकारी से आसानी से उपलब्ध डेटा का इस्तेमाल करने का तरीका सिखाएंगे. इससे आपको एएनआर, क्रैश, और बैटरी के ज़्यादा इस्तेमाल से जुड़ा फ़ील्ड डेटा मिलेगा.

हम आपको अगले लेवल पर पहुंचने का तरीका भी सिखाएंगे. उदाहरण के लिए, हम यह दिखाएंगे कि Jetpack Macrobenchmark और नए UiAutomator 2.4 API का इस्तेमाल करके, लोकल परफ़ॉर्मेंस टेस्टिंग की मदद से लेवल 3 तक कैसे पहुंचा जा सकता है . इससे आपके ऐप्लिकेशन की परफ़ॉर्मेंस में हुए किसी भी बदलाव को सटीक तरीके से मेज़र और पुष्टि की जा सकती है.

इस बारे में ज़्यादा जानने के लिए, गुरुवार को पोस्ट किया गया हमारा ब्लॉग पढ़ें: [Link to Thursday's Blog: Leveling Guide for your Performance Journey]

परफ़ॉर्मेंस को डीबग करने की सुविधा अब और बेहतर हो गई है

ऐडवांस ऑप्टिमाइज़ेशन का मतलब यह नहीं होना चाहिए कि क्रैश रिपोर्ट को पढ़ा न जा सके. नई सुविधाओं को इस तरह से डिज़ाइन किया गया है कि आप R8 और बैकग्राउंड में होने वाले काम को आसानी से डीबग कर सकें:

Automatic Logcat Retrace

Android Studio Narwhal से, Logcat विंडो में स्टैक ट्रेस अपने-आप डी-ऑब्फ़स्केट हो सकते हैं. इस तरह, प्रॉडक्शन के लिए तैयार किए गए बिल्ड में होने वाली किसी भी क्रैश की समस्या को तुरंत देखा और डीबग किया जा सकता है.

डेटा को कम समय तक सेव करने से जुड़े नियम

मंगलवार को हमने रनटाइम क्रैश को ठीक करने के लिए ज़रूरी, सुरक्षित रखने के नियमों के बारे में बताया था. हमने वाइल्डकार्ड के बजाय, सदस्य-लेवल के खास नियम लिखने पर ज़ोर दिया था. यह एक अहम विषय है. इसलिए, हमने आपके लिए एक वीडियो भी बनाया है.

साथ ही, Android Studio Otter 3 Feature Drop में, Keep Rules के लिए नया लिंट चेक उपलब्ध है. इससे भी आपको मदद मिलेगी.

image.png

हमने R8 कॉन्फ़िगरेशन की जांच और समस्या हल करने के बारे में नया दिशा-निर्देश भी जारी किया है. इससे आपको कॉन्फ़िगरेशन को सही तरीके से सेट अप करने में मदद मिलेगी.

ज़्यादा जानने के लिए, मंगलवार को पोस्ट किया गया हमारा ब्लॉग पढ़ें: R8 के कीप रूल कॉन्फ़िगर करना और उनसे जुड़ी समस्याएं हल करना

बैकग्राउंड में होने वाले काम

हमने WorkManager की मदद से टास्क शेड्यूल करते समय, आपको होने वाली सामान्य समस्याओं को ठीक करने के बारे में दिशा-निर्देश शेयर किए हैं.

बैकग्राउंड टास्क की जांच करने वाला टूल, WorkManager टास्क का विज़ुअल और ग्राफ़ व्यू दिखाता है. इससे यह डीबग करने में मदद मिलती है कि शेड्यूल किया गया काम पूरा होने में देरी क्यों हो रही है या वह पूरा क्यों नहीं हो रहा है. इसके अलावा, बैकग्राउंड में होने वाले काम से जुड़े अपडेट किए गए दस्तावेज़ के लैंडिंग पेज पर, टास्क के हिसाब से एपीआई के बारे में बताया गया है. इन्हें इस्तेमाल के खास उदाहरणों के लिए ऑप्टिमाइज़ किया गया है. इससे आपको ज़्यादा भरोसेमंद तरीके से टास्क पूरा करने में मदद मिलती है.
 

ज़्यादा जानने के लिए, बुधवार को पब्लिश किया गया हमारा ब्लॉग पढ़ें: बैकग्राउंड में किए जाने वाले काम की परफ़ॉर्मेंस से जुड़ी बातें

परफ़ॉर्मेंस को ऑप्टिमाइज़ करने की प्रोसेस लगातार चलती रहती है

अगर आपने इस हफ़्ते R8 के फ़ुल मोड को चालू करने का हमारा चैलेंज पूरा कर लिया है, तो आपका अगला चरण ऐप्लिकेशन की परफ़ॉर्मेंस के स्कोर का इस्तेमाल करके, परफ़ॉर्मेंस को अपने प्रॉडक्ट के रोडमैप में इंटिग्रेट करना है. इस स्टैंडर्ड फ़्रेमवर्क की मदद से, लगातार बेहतर परफ़ॉर्म करने के लिए सबसे ज़्यादा फ़ायदेमंद कार्रवाइयां की जा सकती हैं.

हमने इस हफ़्ते का समापन #AskAndroid Live सवाल-जवाब सेशन के साथ किया. इसमें इंजीनियरों ने R8, प्रोफ़ाइल गाइडेड ऑप्टिमाइज़ेशन वगैरह के बारे में आपके सबसे मुश्किल सवालों के जवाब दिए. अगर आपने इसे नहीं देखा है, तो रीप्ले देखें!

हमसे जुड़ने के लिए धन्यवाद! अब, बनाना शुरू करें और इसी तरह आगे बढ़ते रहें.

लेखक:
पढ़ना जारी रखें