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

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

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

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

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

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

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

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

R8 को फ़ुल मोड में चालू करने के बाद, Reddit को कोल्ड स्टार्टअप में 40% की बढ़ोतरी और ANR की गड़बड़ियों में 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 Vitals से आसानी से उपलब्ध डेटा का इस्तेमाल करने का तरीका सिखाएंगे. इससे आपको ANR, क्रैश, और बैटरी के ज़्यादा इस्तेमाल से जुड़ा फ़ील्ड डेटा मिलता है.

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

गुरुवार के हमारे ब्लॉग में ज़्यादा पढ़ें: [गुरुवार के ब्लॉग का लिंक: परफ़ॉर्मेंस के सफ़र के लिए लेवलिंग गाइड]

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

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

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

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

Keep Rules को सीमित करना

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

Android Studio Otter 3 Feature Drop में, वाइड Keep Rules के लिए नया लिंट चेक भी शामिल है.

image.png

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

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

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

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

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

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

परफ़ॉर्मेंस को ऑप्टिमाइज़ करना एक सतत प्रक्रिया है

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

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

हमारे साथ जुड़ने के लिए धन्यवाद! अब ऐप्लिकेशन बनाना शुरू करें और इस सिलसिले को जारी रखें.

इसे लिखा है:
पढ़ना जारी रखें