हीरो बेंचमार्क, बेंचमार्क का एक ऐसा सेट होता है जो ऐप्लिकेशन के उपयोगकर्ताओं के सफ़र के मुख्य पहलुओं को कवर करता है. जैसे, ऐप्लिकेशन शुरू करना या ओपन-सोर्स Pokedex ऐप्लिकेशन में स्क्रोल करना.
- स्टार्टअप हीरो के बेंचमार्क: ऐप्लिकेशन खोलने से लेकर कॉन्टेंट दिखने तक के समय को ट्रैक करना.
- स्क्रोल हीरो बेंचमार्क: इससे इमेज के साथ लेज़ी ग्रिड की स्क्रोलिंग परफ़ॉर्मेंस को मेज़र किया जाता है.
टेस्ट सेटअप
- ऐप्लिकेशन का चुनाव: हमने ये टेस्ट, ओपन सोर्स Pokedex ऐप्लिकेशन का इस्तेमाल करके किए. हमने इसके व्यू-आधारित और कंपोज़-आधारित वर्शन की तुलना की. इस ऐप्लिकेशन को असल दुनिया के उदाहरणों को दिखाने के लिए चुना गया था. इसे Compose टीम ने डेवलप नहीं किया था.
- हार्डवेयर सेटअप: हमने Android 12 (API 31) पर चलने वाले Pixel 3a पर बेंचमार्क टेस्ट किए. इनमें सीपीयू और जीपीयू लॉक किए गए थे. इस डिवाइस का इस्तेमाल, हीरो बेंचमार्क के लिए स्टैंडर्ड परफ़ॉर्मेंस बेसलाइन के तौर पर किया जाता है.
- बिल्ड सेटअप: बेंचमार्क, रिलीज़ मोड में बनाए गए ऐप्लिकेशन का इस्तेमाल करते हैं. इसमें R8 की सुविधा चालू होती है. यह ऐप्लिकेशन पूरी तरह से पहले से कंपाइल किया गया है, ताकि जस्ट-इन-टाइम (JIT) कंपाइलेशन की वजह से होने वाली अस्थिरता को कम किया जा सके.
- नतीजे चुनना: सबसे खराब स्थिति का विश्लेषण करने के लिए, बेंचमार्क के नतीजों में से बहुत ज़्यादा आउटलायर और गैर-प्रतिनिधि शोर को हटा दिया गया था. इसके बाद, परफ़ॉर्मेंस के अप्पर-बाउंड डेटा की मीडियन वैल्यू चुनकर, एक बेसलाइन तय की गई
स्टार्टअप के लिए हीरो बेंचमार्क
स्टार्टअप को मेज़र करने के लिए, हमने PokedexStartupBenchmark का इस्तेमाल किया. PokedexStartupBenchmark से यह पता चलता है कि Pokedex ऐप्लिकेशन को उपयोगकर्ता को दिखने में कितना समय लगता है.
ऐप्लिकेशन को तीन स्थितियों में लॉन्च किया जा सकता है: कोल्ड स्टार्ट, वॉर्म स्टार्ट या हॉट स्टार्ट. हर स्थिति से यह तय होता है कि ऐप्लिकेशन को उपयोगकर्ता को दिखने में कितना समय लगेगा. कोल्ड स्टार्ट में, ऐप्लिकेशन नए सिरे से शुरू होता है. इस बेंचमार्क में, हम कोल्ड स्टार्ट स्टेट में ऐप्लिकेशन लॉन्च करने की परफ़ॉर्मेंस को मेज़र करते हैं. हमारा सुझाव है कि आप हमेशा कोल्ड स्टार्ट के अनुमान के आधार पर, ऐप्लिकेशन को ऑप्टिमाइज़ करें. ऐसा करने से, वॉर्म और हॉट स्टार्ट की परफ़ॉर्मेंस भी बेहतर हो सकती है.
ऐप्लिकेशन खुलने में लगने वाले समय को मेज़र करने के लिए, हम इन मेट्रिक का इस्तेमाल करते हैं: शुरुआती डिसप्ले में लगने वाला समय और पूरी तरह से डिसप्ले होने में लगने वाला समय.
शुरुआती डिसप्ले में लगने वाला समय
टीटीआईडी (चालू होने में लगने वाला समय) से यह पता चलता है कि किसी ऐप्लिकेशन को अपना पहला फ़्रेम दिखाने में कितना समय लगता है. इसमें कोल्ड स्टार्ट के दौरान प्रोसेस शुरू होने, कोल्ड या वार्म स्टार्ट के दौरान गतिविधि बनने, और पहला फ़्रेम दिखने में लगने वाला समय शामिल है.
PokedexStartupBenchmark में, कोल्ड स्टार्ट के साथ टीटीआईडी के लिए, Compose 1.11, Views की तुलना में 2.5% धीमा है.
पूरी तरह से दिखने में लगने वाला समय
पूरी तरह से दिखने में लगने वाला समय (टीटीएफ़डी) से पता चलता है कि ऐप्लिकेशन को इंटरैक्टिव बनने में कितना समय लगता है. इसका मतलब है कि पूरा डेटा लोड हो गया है और उसे दिखाया जा रहा है. पूरी तरह से दिखने में लगने वाले समय के बारे में ज़्यादा जानकारी के लिए, ऐप्लिकेशन स्टार्टअप समय लेख पढ़ें.
PokedexStartupBenchmark में, कोल्ड स्टार्ट के साथ टीटीएफ़डी के लिए, Compose 1.11, Views की तुलना में 13.0% धीमा है.
स्क्रोल हीरो के मानदंड
स्क्रोलिंग की परफ़ॉर्मेंस को मेज़र करने के लिए, हमने PokedexScrollBenchmark का इस्तेमाल किया. यह इमेज के साथ लेज़ी ग्रिड के लिए, Pokedex ऐप्लिकेशन की स्क्रीन की स्क्रोल परफ़ॉर्मेंस को मेज़र करता है. इस बेंचमार्क में, पूरी स्क्रीन को कई बार स्क्रोल और फ़्लिंग किया जाता है. साथ ही, नए आइटम लोड किए जाते हैं. स्क्रोल करने की परफ़ॉर्मेंस को जंक रेट से मेज़र किया जाता है.
जंक रेट
Android डिवाइसों पर, 60 या 120 फ़्रेम प्रति सेकंड (एफ़पीएस) तक रेंडर किया जाता है. इसका मतलब है कि सिस्टम के पास फ़्रेम जनरेट करने के लिए एक तय समयसीमा होती है. उदाहरण के लिए, 60 फ़्रेम प्रति सेकंड के लिए 16.6 मि॰से॰. अगर ऐप्लिकेशन को अपना काम पूरा करने में बहुत ज़्यादा समय लगता है, तो इससे स्टटरिंग (बहुत धीमी रेंडरिंग) हो सकती है. इसे जैंक कहा जाता है.
PokedexScrollBenchmark में, Compose और Views को 0.21% जंक की एक जैसी परफ़ॉर्मेंस मिली है. यह परफ़ॉर्मेंस, Compose 1.9.0 के बाद से मिली है. सटीक आंकड़ों के हिसाब से, 485 फ़्रेम में से एक फ़्रेम में रुकावट आई.
इन बेंचमार्क से पता चलता है कि Compose 1.9 और इसके बाद के वर्शन, स्क्रोल करते समय जंक के लिए Views की परफ़ॉर्मेंस से मेल खाते हैं.
हीरो के बेंचमार्क चलाना
परफ़ॉर्मेंस के नतीजों की पुष्टि करने और स्थानीय तौर पर बेंचमार्क चलाने के लिए:
- सोर्स कोड देखने के लिए, AndroidX गाइड देखें.
- Hero Benchmarks के सोर्स कोड में दिए गए निर्देशों का पालन करें.
इन बेंचमार्क को, इस्तेमाल किए जा सकने वाले किसी भी डिवाइस पर चलाया जा सकता है. जैसे, कोई ऐसा डिवाइस जिसके लिए आपको अपने ऐप्लिकेशन को ऑप्टिमाइज़ करना है. हालांकि, आधिकारिक नतीजों की पुष्टि करने के लिए, उसी हार्डवेयर सेटअप का इस्तेमाल करें.