Android Calendar की टीम ने बेसलाइन प्रोफ़ाइल की मदद से, ऐप्लिकेशन के स्टार्टअप और जैंक को कैसे बेहतर बनाया है

बेसलाइन प्रोफ़ाइल, कोड लागू करने की स्पीड को 30% तक बढ़ा देती हैं. ऐसा करने के लिए इंटरप्रेटर ऐंड जस्ट-इन-टाइम (जेआईटी) कंपाइलेशन तरीका का इस्तेमाल करें. बेसलाइन प्रोफ़ाइल की मदद से, यह चुनने का विकल्प मिलता है कि उपयोगकर्ता की कौनसी गतिविधियां आपने की हैं को ऑप्टिमाइज़ करना है और ऐप्लिकेशन के स्टार्टअप को बेहतर बनाने, जैंक को कम करने वगैरह में मदद कर सकता है—जिसमें से उपयोगकर्ता को अपने साथ जोड़े रखने और रेटिंग जैसे कारोबार की मेट्रिक में सुधार होगा. बेसलाइन के बारे में ज़्यादा जानें प्रोफ़ाइलें.

Android Calendar की टीम ने बेसलाइन प्रोफ़ाइल लागू की और ~20% ऐप्लिकेशन की जांच की ऐप्लिकेशन के खुलने में लगने वाले समय में सुधार हुआ और रेंडर होने में ज़्यादा समय लेने वाले या रुके हुए फ़्रेम में करीब 50% की कमी आई. यह रहा कि अपग्रेड के नतीजों को हासिल करने के लिए, उन्होंने एंड-टू-एंड पर क्या-क्या किया, और किन वजहों से बेसलाइन प्रोफ़ाइलों का इस्तेमाल करने का फ़ैसला लिया, ताकि वे अपने असर का आकलन कर सकें.

Cloud Profiles बनाम बेसलाइन प्रोफ़ाइल

Android Calendar टीम पहले से ही Cloud सेवाएं इस्तेमाल कर रही थी प्रोफ़ाइलें हैं, जिनमें प्रोफ़ाइल के लिए गाइडेड ऑप्टिमाइज़ेशन (पीजीओ) का भी इस्तेमाल किया जाता है. यह तरीका असल दुनिया के उपयोगकर्ताओं के हिसाब से बनाया गया है ऐप के साथ इंटरैक्शन करते हैं. Cloud Profiles और बेसलाइन प्रोफ़ाइलों के बारे में यहां बताया गया है तुलना करें:

प्रोफ़ाइल किस तरह की है सेट अप करें उपयोगकर्ता की गतिविधियों का डेटा शामिल है सबसे अच्छा काम तब करता है, जब उपयोगकर्ता आधार होता है असर का एहसास Android के ओएस वर्शन पर काम करने वाले वर्शन

क्लाउड प्रोफ़ाइलें

डिफ़ॉल्ट रूप से चालू है

असल दुनिया के उपयोगकर्ता डेटा के आधार पर अपने-आप चुनी गई खबरें

बड़ा

कुछ दिनों में

Android 9 (एपीआई लेवल 28) और इसके बाद के वर्शन

बेसलाइन प्रोफ़ाइल

आपने कॉन्फ़िगर किया है

आपने चुना

सभी साइज़

तुरंत

Android 7 (एपीआई लेवल 24) और इसके बाद के वर्शन

Android Calendar की टीम ने बेसलाइन प्रोफ़ाइल जोड़ने का फ़ैसला लिया है, उनका कोडबेस ऐसा था कि वे तेज़ी से और हर हफ़्ते वाले रिलीज़ साइकल पर जा रहे थे. Cloud Profile से आपकी परफ़ॉर्मेंस बेहतर होती है. हालांकि, इसमें एक से दो दिन लगते हैं जब वे ऐप्लिकेशन लॉन्च के बाद अपने बेहतरीन असर तक पहुंच पाते हैं, क्योंकि उन्हें उपयोगकर्ता का रीयल-वर्ल्ड डेटा इकट्ठा करना. Cloud Profile को बेसलाइन के साथ जोड़ना प्रोफ़ाइलों की मदद से, लोगों को सबसे अच्छी परफ़ॉर्मेंस वाले डिवाइसों का बेहतर अनुभव पाने के लिए ज़्यादा समय मिलता है इससे पहले कि आपका ऐप्लिकेशन चालू हो.

इसके अलावा, Android Calendar टीम को यह चुनना कि उपयोगकर्ता की कौनसी गतिविधियां (सीयूजे) खास तौर पर है, जो आप बेसलाइन प्रोफ़ाइल का उपयोग करके कर सकते हैं.

आम तौर पर, हमारा सुझाव है कि आप Cloud Profiles के साथ-साथ बेसलाइन प्रोफ़ाइल का भी इस्तेमाल करें. डिफ़ॉल्ट रूप से चालू रहती है.

उपयोगकर्ता की गतिविधियों का डेटा शामिल है

Android Calendar टीम ने अपनी बेसलाइन प्रोफ़ाइल में दो सीयूजे को शामिल करने का विकल्प चुना है:

  • ऐप्लिकेशन को शेड्यूल व्यू में खोलना: शुरुआत में डिफ़ॉल्ट व्यू होना चाहिए, इसलिए जिन्हें पहली बार इस्तेमाल कर रहे उपयोगकर्ताओं के लिए ऑप्टिमाइज़ किया जा सकता है या जो नहीं डिफ़ॉल्ट सेटिंग.
  • ऐप्लिकेशन को महीने के व्यू में खोलना: उपयोगकर्ता के आधार पर, कई उपयोगकर्ताओं के लिए चुना गया व्यू डेटा शामिल है. यह ट्रैक करने के लिए कि उपयोगकर्ता आपके ऐप्लिकेशन का इस्तेमाल कैसे कर रहे हैं, आप नीचे दिए गए Firebase.

आम तौर पर, आपको ऐसे सीयूजे जोड़ने चाहिए जो कारोबार के लिए फ़ायदेमंद हैं (अगर जो सबसे आम सीयूजे हैं. चुनने के तरीके के बारे में ज़्यादा जानने के लिए सीयूजे को ऑप्टिमाइज़ करना है, तो देखें कि क्या शामिल हैं.

लागू करना

Android कैलेंडर टीम Jetpack मैक्रोबेंचमार्क लाइब्रेरी इंटरनल टूल और बढ़ाए जा सकने की सामान्य योग्यता.

शेड्यूल में ऐप्लिकेशन खोलने के लिए, मैक्रोबेंचमार्क टेस्ट कॉन्फ़िगरेशन यहां दिया गया है दृश्य:

@Test
fun generateProfile() =
    baselineProfileRule.collect(PACKAGE_NAME, includeInStartupProfile = true) {
        startActivityAndWait()
        // Verify pre-existing recurring events and tasks are shown.
        device.waitAndFindObject(By.text("Recurring event"), 20_000)
        device.waitAndFindObject(By.text("Recurring task"), 20_000)

        // Open drawer and verify selected view.
        device.findObject(By.desc("Show Calendar List and Settings drawer")).click()
        device.waitAndFindObject(By.desc("Schedule view, Selected"), 1_000)
    }

कंट्रोल वाली रिलीज़ की मदद से, ऐप्लिकेशन पर पड़ने वाले असर का आकलन करें

बेसलाइन प्रोफ़ाइल, उस APK के साथ अच्छी तरह जुड़ी होती हैं जिसके साथ इन्हें शिप किया जाता है और आपके ऐप्लिकेशन के चलने से पहले शामिल हो जाता है, तो स्टैंडर्ड A/B नहीं चलाया जा सकता उनके असर को समझने के लिए एक्सपेरिमेंट करें. हालांकि, Android Calendar की टीम को कंट्रोल की गई रिलीज़ का इस्तेमाल करके, असर का सटीक आकलन किया जा सकता है. ज़रूरी है कि ऐप्लिकेशन के नए वर्शन को सिर्फ़ उपयोगकर्ताओं के किसी सबसेट के लिए रिलीज़ किया जाए और उसकी तुलना की जाए पिछली रिलीज़ से मिलते-जुलते वर्शन का इस्तेमाल कर रहे हैं.

बेसलाइन प्रोफ़ाइलों का इस्तेमाल करके, उन्हें तुरंत ही नीचे दी गई अहम जानकारी मिली कई क्षेत्रों में सुधार किया गया है. ये आंकड़े कई तरह से इकट्ठा किए जाते हैं डिवाइसों और सभी उपयोगकर्ताओं का प्रतिशत है. ये ऐसे उपयोगकर्ता हैं जो शेड्यूल और महीने के व्यू में शुरू होते हैं को सबसे ज़्यादा फ़ायदा मिल सकता है, लेकिन अन्य उपयोगकर्ताओं को भी इसका फ़ायदा मिलेगा. शेयर की गई प्रोसेस को ऑप्टिमाइज़ करने में मदद करता है. जैसे, डेटाबेस.

  • मीडियन इंटरैक्टिव ऐप्लिकेशन के स्टार्टअप (सबसे आम स्थिति) में इंतज़ार का समय इतना कम हुआ 775 मि॰से॰ से 644 मि॰से॰ (17%)
  • कोल्ड स्टार्ट में लगने वाला मीडियन समय 1,058 मि॰से॰ से घटकर 901 मि॰से॰ (15%) हो गया
  • वॉर्म स्टार्ट इंतज़ार का समय 453 मि॰से॰ से घटकर 378 मि॰से॰ (17%) हो गया है
  • शेड्यूल और महीने के व्यू में, मीडियन फ़्रेम रेट में 42-60% की कमी आई

ध्यान रखें कि अगर Cloud Profiles का इस्तेमाल बेसलाइन के साथ किया जाता है, तो ऐसी प्रोफ़ाइल जिन्हें आप देख सकते हैं कि समय के साथ-साथ सुधार में कुछ कमी आ सकती है क्लाउड प्रोफ़ाइलें जनरेट करने में मदद मिलेगी. हालांकि, आपको अब भी अन्य चीज़ों के मुकाबले, Baseline Profiles की मदद से ऑप्टिमाइज़ेशन के लिए सबसे सही तरीके़ इस्तेमाल किए जा सकते हैं.

टूल और सुविधाओं के बारे में ज़्यादा जानने के लिए, यहां दिए गए संसाधन देखें: