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

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

तीन मिनट में पढ़ें
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 और बैकग्राउंड में होने वाले काम को आसानी से डीबग कर सकें:

Logcat को अपने-आप फिर से ट्रेस करने की सुविधा

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

डेटा को कम समय तक सेव रखने के नियम

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

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

image.png

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

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

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

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

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

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

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

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

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

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

इसे लिखा है:

पढ़ना जारी रखें