Jetpack Compose, बेहतरीन परफ़ॉर्मेंस देता है. सबसे सही तरीकों का इस्तेमाल करके, अपने ऐप्लिकेशन को कॉन्फ़िगर करें. इससे, सामान्य गलतियों से बचा जा सकता है और Compose ऐप्लिकेशन की परफ़ॉर्मेंस को ऑप्टिमाइज़ किया जा सकता है.
Android स्किल
GitHub पर देखेंJetpack Compose की परफ़ॉर्मेंस
android skills add jetpack-compose-performanceJetpack Compose की परफ़ॉर्मेंस की जांच करना
व्यू के मुकाबले Jetpack Compose की परफ़ॉर्मेंस की पुष्टि करने के लिए, हम हीरो बेंचमार्क का इस्तेमाल करते हैं. ये ऐसे बेंचमार्क होते हैं जो असल दुनिया में उपयोगकर्ता की अहम गतिविधियों पर फ़ोकस करते हैं. जैसे, किसी ऐप्लिकेशन को कोल्ड स्टार्ट करना या इमेज वाली सूची या ग्रिड को स्क्रोल करना. हम ओपन सोर्स Pokedex ऐप्लिकेशन का इस्तेमाल करके, ये मानदंड तय करते हैं. साथ ही, इसके व्यू और Compose के लागू होने की तुलना करते हैं.
इन बेंचमार्क से पता चलता है कि Compose 1.9.0 के बाद से, स्क्रोल करते समय जैंक के लिए Compose की परफ़ॉर्मेंस, Views की परफ़ॉर्मेंस से मैच करती है. Pixel 6 पर, जैंक की दर 0% है.
| Compose का वर्शन | डिवाइस | व्यू के मुकाबले ज़्यादा जैंक (पीपी) |
|---|---|---|
| 1.3.3 | Pixel 3a | +0.35 |
| 1.4.3 | Pixel 3a | +0.41 |
| 1.5.4 | Pixel 3a | +0.42 |
| 1.6.8 | Pixel 3a | +0.21 |
| 1.7.8 | Pixel 3a | +0.36 |
| 1.8.0 | Pixel 3a | +0.38 |
| 1.9.0 | Pixel 3a | 0 |
| 1.10.0 | Pixel 3a | 0 |
| 1.11 | Pixel 6 | 0 |
| 1.12 | Pixel 6 | 0 |
अन्य मेट्रिक और हमारे तरीकों के बारे में जानने के लिए, हीरो बेंचमार्क देखें.
मुख्य सिद्धांत
Compose में परफ़ॉर्मेंस के लिए कुछ मुख्य कॉन्सेप्ट यहां दिए गए हैं:
- फ़ेज़: कंपोज़िशन, लेआउट, और ड्रॉइंग फ़ेज़ को समझना ज़रूरी है. इससे यह ऑप्टिमाइज़ करने में मदद मिलती है कि Compose आपके यूज़र इंटरफ़ेस (यूआई) को कैसे अपडेट करता है.
- बेसलाइन प्रोफ़ाइलें: ये प्रोफ़ाइलें, ज़रूरी कोड को पहले से कंपाइल करती हैं. इससे ऐप्लिकेशन तेज़ी से लॉन्च होते हैं और उनके साथ इंटरैक्शन आसान हो जाता है.
- स्टेबिलिटी: जानें कि Compose, रीकंपोज़िशन के दौरान पैरामीटर की तुलना कैसे करता है. इससे आपको गैर-ज़रूरी काम को स्किप करने में मदद मिलती है. साथ ही, आपको समानता की जांच करने के लिए महंगे तरीके नहीं अपनाने पड़ते.
अपने ऐप्लिकेशन को सही तरीके से कॉन्फ़िगर करना
अगर आपका ऐप्लिकेशन खराब परफ़ॉर्म कर रहा है, तो हो सकता है कि कॉन्फ़िगरेशन में कोई समस्या हो. सबसे पहले, कॉन्फ़िगरेशन के इन विकल्पों को देखें:
- R8 के साथ रिलीज़ मोड में बिल्ड करना: अपने ऐप्लिकेशन को रिलीज़ मोड में चलाकर देखें. डीबग मोड, कई समस्याओं का पता लगाने के लिए मददगार है. हालांकि, इससे परफ़ॉर्मेंस पर असर पड़ता है और अन्य समस्याओं का पता लगाना मुश्किल हो सकता है. आपको R8 कंपाइलर की मदद से, ऑप्टिमाइज़ करने और छोटा करने की सुविधा चालू करनी चाहिए. इससे यह पक्का किया जा सकेगा कि रिलीज़ के लिए तैयार बिल्ड, बेहतर तरीके से काम करे.
- बेसलाइन प्रोफ़ाइलों का इस्तेमाल करें: बेसलाइन प्रोफ़ाइलें, क्रिटिकल यूज़र जर्नी के लिए कोड को पहले से कंपाइल करके परफ़ॉर्मेंस को बेहतर बनाती हैं. Compose में डिफ़ॉल्ट प्रोफ़ाइल शामिल होती है. हालांकि, आपको ऐप्लिकेशन के लिए भी एक प्रोफ़ाइल बनानी चाहिए. Android की परफ़ॉर्मेंस से जुड़े सामान्य दस्तावेज़ों में, बेसलाइन प्रोफ़ाइलों के बारे में ज़्यादा जानें
टूल
Compose ऐप्लिकेशन की परफ़ॉर्मेंस का आकलन करने और उसका विश्लेषण करने के लिए, उपलब्ध टूल के सुइट के बारे में जानें.
सबसे सही तरीके
Compose का इस्तेमाल करके ऐप्लिकेशन बनाते समय, इन सबसे सही तरीकों को ध्यान में रखें:
- ज़्यादा समय लेने वाले कैलकुलेशन से बचें: ज़्यादा समय लेने वाले कैलकुलेशन के नतीजों को कैश मेमोरी में सेव करने के लिए,
rememberका इस्तेमाल करें. - लेज़ी लेआउट की मदद करना: लेज़ी लेआउट को स्टेबल
keyऔरcontentTypeपैरामीटर दें, ताकि ग़ैर-ज़रूरी रीकंपोज़िशन को कम किया जा सके और स्लॉट को फिर से इस्तेमाल किया जा सके. - ग़ैर-ज़रूरी रीकंपोज़िशन को सीमित करें: तेज़ी से बदलने वाली स्थिति को पढ़ते समय, रीकंपोज़िशन को सीमित करने के लिए,
computedStateOf(Compose 1.13 और इसके बाद के वर्शन में) याderivedStateOfका इस्तेमाल करें. - स्टेट रीड को टालना: स्टेट रीड को लैम्ब्डा फ़ंक्शन में रैप करके, जितना हो सके उतना टालें.
- स्टेट बदलने के लिए, लैम्ब्डा मॉडिफ़ायर का इस्तेमाल करें: बार-बार बदलने वाले स्टेट वैरिएबल के लिए, लैम्ब्डा-आधारित मॉडिफ़ायर का इस्तेमाल करें, जैसे कि
Modifier.offset { ... }. - बैकवर्ड राइट से बचें: कंपोज़ेबल में पहले से पढ़े जा चुके स्टेट में कभी भी न लिखें.
ज़्यादा जानकारी के लिए, सबसे सही तरीके गाइड देखें.
व्यू
अगर Compose के बजाय व्यू का इस्तेमाल किया जा रहा है, तो लेआउट की परफ़ॉर्मेंस को बेहतर बनाने के लिए बनी गाइड देखें.
अन्य संसाधन
- ऐप्लिकेशन की परफ़ॉर्मेंस से जुड़ी गाइड: Android पर ऐप्लिकेशन की परफ़ॉर्मेंस को बेहतर बनाने के लिए, सबसे सही तरीके, लाइब्रेरी, और टूल के बारे में जानें.
- परफ़ॉर्मेंस की जांच करना: ऐप्लिकेशन की परफ़ॉर्मेंस की जांच करें.
- बेंचमार्किंग: ऐप्लिकेशन की परफ़ॉर्मेंस का बेंचमार्क सेट करें.
- ऐप्लिकेशन स्टार्टअप: ऐप्लिकेशन स्टार्टअप को ऑप्टिमाइज़ करें.
- बेसलाइन प्रोफ़ाइलें: बेसलाइन प्रोफ़ाइलों के बारे में जानें.