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