कॉन्सेप्ट और Jetpack Compose को लागू करना
बेंचमार्किंग, आपके ऐप्लिकेशन की परफ़ॉर्मेंस की जांच करने और उसे मॉनिटर करने का एक तरीका है. परफ़ॉर्मेंस से जुड़ी समस्याओं का विश्लेषण करने और उन्हें डीबग करने के लिए, नियमित तौर पर बेंचमार्क चलाए जा सकते हैं. इससे यह पक्का करने में मदद मिलती है कि हाल ही में किए गए बदलावों की वजह से, ऐप्लिकेशन की परफ़ॉर्मेंस में गिरावट न आए.
Android, आपके ऐप्लिकेशन में अलग-अलग तरह की स्थितियों का विश्लेषण और टेस्ट करने के लिए, दो मानदंड लाइब्रेरी और तरीके उपलब्ध कराता है: Macrobenchmark और Microbenchmark.
मैक्रोबेंचमार्क
Macrobenchmark लाइब्रेरी, असली उपयोगकर्ता के बड़े इंटरैक्शन को मेज़र करती है. जैसे, स्टार्टअप, यूज़र इंटरफ़ेस (यूआई) के साथ इंटरैक्ट करना, और ऐनिमेशन. लाइब्रेरी, परफ़ॉर्मेंस एनवायरमेंट पर सीधा कंट्रोल देती है. इससे आपको कंपाइल करने की प्रोसेस को कंट्रोल करने की सुविधा मिलती है. साथ ही, ऐप्लिकेशन को शुरू और बंद करने की सुविधा मिलती है, ताकि ऐप्लिकेशन के स्टार्टअप या स्क्रोलिंग को सीधे तौर पर मेज़र किया जा सके.
मैक्रोबेंचमार्क लाइब्रेरी, इवेंट इंजेक्ट करती है और टेस्ट ऐप्लिकेशन से नतीजों को मॉनिटर करती है. यह टेस्ट ऐप्लिकेशन, आपके टेस्ट की मदद से बनाया जाता है. इसलिए, मानदंड लिखते समय, अपने ऐप्लिकेशन कोड को सीधे कॉल न करें. इसके बजाय, अपने ऐप्लिकेशन में एक उपयोगकर्ता के तौर पर नेविगेट करें.
माइक्रोबेंचमार्क
माइक्रोबेंचमार्क लाइब्रेरी की मदद से, ऐप्लिकेशन के कोड को सीधे लूप में बेंचमार्क किया जा सकता है. इसे सीपीयू के काम को मेज़र करने के लिए डिज़ाइन किया गया है. इससे सबसे अच्छी परफ़ॉर्मेंस का आकलन किया जाता है. जैसे, वॉर्म अप किया गया जस्ट इन टाइम (जेआईटी) और कैश मेमोरी में सेव किया गया डिस्क ऐक्सेस. इसे इनर-लूप या किसी खास हॉट फ़ंक्शन के साथ देखा जा सकता है. लाइब्रेरी सिर्फ़ उस कोड को मेज़र कर सकती है जिसे सीधे तौर पर अलग से कॉल किया जा सकता है.
बेंचमार्किंग के लिए ये अच्छे मामले हैं:
- जब आपके ऐप्लिकेशन को किसी जटिल डेटा स्ट्रक्चर को प्रोसेस करना हो.
- जब आपके ऐप्लिकेशन में कंप्यूटेशन-हैवी एल्गोरिदम होता है, तो ऐप्लिकेशन के चलने के दौरान उसे कई बार कॉल किया जाता है.
यूज़र इंटरफ़ेस (यूआई) के हिस्सों को भी मेज़र किया जा सकता है. उदाहरण के लिए, RecyclerView आइटम बाइंडिंग की लागत, लेआउट को बड़ा करने में लगने वाला समय या आपकी View क्लास के लेआउट-ऐंड-मेज़र पास की परफ़ॉर्मेंस को मेज़र किया जा सकता है.
हालांकि, यह मेज़र नहीं किया जा सकता कि मानदंड के तौर पर इस्तेमाल किए गए मामलों से, उपयोगकर्ता अनुभव पर क्या असर पड़ता है. कुछ मामलों में, मानदंड से यह पता नहीं चलता कि ड्रॉप किए गए फ़्रेम या ऐप्लिकेशन के स्टार्टअप टाइम जैसी समस्या को ठीक किया जा रहा है या नहीं. इसलिए, Android Profiler की मदद से, सबसे पहले उन रुकावटों की पहचान करना ज़रूरी है. जिस कोड की जांच करनी है और जिसे ऑप्टिमाइज़ करना है उसे ढूंढने के बाद, बेंचमार्क किए गए लूप को बार-बार चलाया जा सकता है, ताकि कम शोर वाले नतीजे मिल सकें. इससे आपको सुधार के एक पहलू पर फ़ोकस करने में मदद मिलती है.
माइक्रोबेंचमार्क लाइब्रेरी, सिर्फ़ आपके ऐप्लिकेशन की जानकारी देती है. यह पूरे सिस्टम की जानकारी नहीं देती. इसलिए, यह ऐप्लिकेशन से जुड़ी खास स्थितियों की परफ़ॉर्मेंस का विश्लेषण करने के लिए सबसे सही है. हालांकि, यह उन स्थितियों के लिए सही नहीं है जो सिस्टम से जुड़ी समस्याओं से जुड़ी हो सकती हैं.
बेंचमार्क लाइब्रेरी की तुलना
| मैक्रोबेंचमार्क | माइक्रोबेंचमार्क | |
|---|---|---|
| फ़ंक्शन | हाई-लेवल एंट्री पॉइंट या इंटरैक्शन को मेज़र करें. जैसे, गतिविधि लॉन्च करना या सूची को स्क्रोल करना. | अलग-अलग फ़ंक्शन को मेज़र करें. |
| दायरा | पूरे ऐप्लिकेशन की आउट-ऑफ़-प्रोसेस जांच. | सीपीयू के काम की जांच की जा रही है. |
| स्पीड | इटरेशन की स्पीड मीडियम है. यह एक मिनट से ज़्यादा का हो सकता है. | तेज़ी से विज्ञापन के अलग-अलग वर्शन बनाने की सुविधा. आम तौर पर, 10 सेकंड से कम. |
| ट्रेसिंग | नतीजों में सिस्टम ट्रेस करने की प्रक्रिया की जानकारी शामिल होती है. | नतीजों में, डिफ़ॉल्ट रूप से सिस्टम ट्रेस करने की प्रोसेस और तरीकों की सूची शामिल होती है. |
आपके लिए सुझाव
- ध्यान दें: JavaScript बंद होने पर, लिंक टेक्स्ट दिखता है
- बेसलाइन प्रोफ़ाइलें बनाना {:#creating-profile-rules}
- JankStats लाइब्रेरी
- ऐप्लिकेशन की परफ़ॉर्मेंस को मेज़र करने के बारे में खास जानकारी