Jetpack Compose, बिना किसी बदलाव के भी बेहतरीन परफ़ॉर्मेंस देता है. अपने ऐप्लिकेशन को सबसे सही तरीकों का इस्तेमाल करके कॉन्फ़िगर करें, ताकि सामान्य समस्याओं से बचा जा सके. साथ ही, Compose ऐप्लिकेशन की परफ़ॉर्मेंस को ऑप्टिमाइज़ किया जा सके.
Jetpack Compose को बेंचमार्क करना
Views के मुकाबले Jetpack Compose की परफ़ॉर्मेंस की पुष्टि करने के लिए, हम हीरो बेंचमार्क का इस्तेमाल करते हैं. ये बेंचमार्क, उपयोगकर्ताओं की अहम और असल दुनिया की यात्राओं पर फ़ोकस करते हैं. जैसे, किसी ऐप्लिकेशन को पहली बार शुरू करना या इमेज वाली सूची या ग्रिड को स्क्रोल करना. हम इन बेंचमार्क को ओपन-सोर्स Pokedex ऐप्लिकेशन का इस्तेमाल करके करते हैं. इसमें Views और Compose के लागू करने के तरीकों की तुलना की जाती है.
इन बेंचमार्क से पता चलता है कि Compose 1.9 और इसके बाद के वर्शन, स्क्रोल करते समय होने वाली गड़बड़ियों के मामले में Views की परफ़ॉर्मेंस के बराबर हैं.
ज़्यादा मेट्रिक और हमारी काम करने की प्रोसेस के बारे में जानने के लिए, हीरो बेंचमार्क देखें.
मुख्य सिद्धांत
Compose में परफ़ॉर्मेंस से जुड़े कुछ मुख्य सिद्धांत यहां दिए गए हैं:
- फ़ेज़: कंपोज़िशन, लेआउट, और ड्रॉइंग फ़ेज़ को समझना ज़रूरी है. इससे यह ऑप्टिमाइज़ किया जा सकता है कि Compose, आपके यूज़र इंटरफ़ेस (यूआई) को कैसे अपडेट करता है.
- बेसलाइन प्रोफ़ाइलें: इन प्रोफ़ाइलों में ज़रूरी कोड पहले से कंपाइल होता है, इससे ऐप्लिकेशन तेज़ी से लॉन्च होते हैं और इंटरैक्शन बेहतर होते हैं.
- स्टेबिलिटी: अपने ऐप्लिकेशन की स्टेबिलिटी बढ़ाएं, ताकि बिना काम के रीकंपोज़िशन को ज़्यादा आसानी से स्किप किया जा सके. इससे परफ़ॉर्मेंस बेहतर होती है.
अपने ऐप्लिकेशन को सही तरीके से कॉन्फ़िगर करना
अगर आपके ऐप्लिकेशन की परफ़ॉर्मेंस खराब है, तो हो सकता है कि कॉन्फ़िगरेशन में कोई समस्या हो. सबसे पहले, यहां दिए गए कॉन्फ़िगरेशन के विकल्पों की जांच करें:
- R8 के साथ रिलीज़ मोड में बनाना: अपने ऐप्लिकेशन को रिलीज़ मोड में चलाने की कोशिश करें. डीबग मोड, कई समस्याओं को ढूंढने में मददगार होता है. हालांकि, इससे परफ़ॉर्मेंस पर असर पड़ता है और अन्य समस्याओं को ढूंढना मुश्किल हो सकता है. आपको R8 कंपाइलर की मदद से ऑप्टिमाइज़ करने और साइज़ कम करने की सुविधा भी चालू करनी चाहिए, ताकि रिलीज़ के लिए बनाया गया ऐप्लिकेशन बेहतर परफ़ॉर्मेंस दे और कम जगह ले.
- बेसलाइन प्रोफ़ाइलें इस्तेमाल करना: बेसलाइन प्रोफ़ाइलें, उपयोगकर्ताओं की अहम यात्राओं के लिए कोड को पहले से कंपाइल करके, परफ़ॉर्मेंस को बेहतर बनाती हैं. Compose में डिफ़ॉल्ट प्रोफ़ाइल शामिल होती है. हालांकि, आपको ऐप्लिकेशन के हिसाब से भी एक प्रोफ़ाइल बनानी चाहिए. बेसलाइन प्रोफ़ाइलों के बारे में ज़्यादा जानने के लिए, Android की परफ़ॉर्मेंस से जुड़े सामान्य दस्तावेज़ देखें
टूल
Compose ऐप्लिकेशन की परफ़ॉर्मेंस को मेज़र और उसका विश्लेषण करने में मदद करने वाले टूल के सुइट के बारे में जानें.
सबसे सही तरीके
Compose की मदद से अपना ऐप्लिकेशन डेवलप करते समय, इन सबसे सही तरीकों को ध्यान में रखें:
- ज़्यादा समय लेने वाली कैलकुलेशन से बचें: ज़्यादा समय लेने वाली कैलकुलेशन के नतीजों को कैश करने के लिए,
rememberका इस्तेमाल करें. - लेज़ी लेआउट में मदद करना: `key` पैरामीटर का इस्तेमाल करके, लेज़ी लेआउट को स्टेबल की उपलब्ध कराएं, ताकि बिना काम के रीकंपोज़िशन को कम किया जा सके.
key - बिना काम के रीकंपोज़िशन को सीमित करना: तेज़ी से बदलती स्थिति में रीकंपोज़िशन को सीमित करने के लिए,
derivedStateOfका इस्तेमाल करें. - स्टेट रीड को टालना: lambda फ़ंक्शन में रैप करके, स्टेट रीड को जितना हो सके उतना टालें.
- स्टेट बदलने के लिए lambda मॉडिफ़ायर का इस्तेमाल करना: अक्सर बदलने वाले स्टेट
वैरिएबल के लिए, lambda-आधारित
मॉडिफ़ायर का इस्तेमाल करें. जैसे,
Modifier.offset { ... }. - बैकवर्ड राइट से बचना: कंपोज़ेबल में पहले से रीड की गई स्टेट में कभी भी न लिखें.
ज़्यादा जानकारी के लिए, सबसे सही तरीके बताने वाली गाइड देखें.
व्यू
अगर Compose के बजाय व्यू का इस्तेमाल किया जा रहा है, तो लेआउट की परफ़ॉर्मेंस को बेहतर बनाने के लिए बनी गाइड देखें.
अतिरिक्त संसाधन
- ऐप्लिकेशन की परफ़ॉर्मेंस से जुड़ी गाइड: Android पर परफ़ॉर्मेंस को बेहतर बनाने के लिए, सबसे सही तरीके , लाइब्रेरी, और टूल के बारे में जानें.
- परफ़ॉर्मेंस की जांच करना: ऐप्लिकेशन की परफ़ॉर्मेंस की जांच करना.
- बेंचमार्किंग: ऐप्लिकेशन की परफ़ॉर्मेंस को बेंचमार्क करना.
- ऐप्लिकेशन का स्टार्टअप: ऐप्लिकेशन के स्टार्टअप को ऑप्टिमाइज़ करना.
- बेसलाइन प्रोफ़ाइलें: बेसलाइन प्रोफ़ाइलों के बारे में जानना.