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