केस स्टडी

Monzo ने R8 के एक आसान अपडेट की मदद से, परफ़ॉर्मेंस के मेट्रिक को 35% तक बढ़ाया

दो मिनट में पढ़ें
Ben Weiss और Tracy Agyemang

Monzo, यूके का एक डिजिटल बैंक है. इसके 1.5 करोड़ ग्राहक हैं और इनकी संख्या लगातार बढ़ रही है. ऐप्लिकेशन के बढ़ने के साथ-साथ, इंजीनियरिंग टीम ने ऐप्लिकेशन के स्टार्टअप टाइम को बेहतर बनाने के लिए एक अहम क्षेत्र के तौर पर पहचाना. हालांकि, उन्हें इस बात की चिंता थी कि इसके लिए, उनके कोडबेस में बड़े बदलाव करने पड़ेंगे.

R8 के ऑप्टिमाइज़ेशन को पूरी तरह से चालू करके, Monzo ने 'ऐप्लिकेशन में कोई समस्या है' (एएनआर) की गड़बड़ी के रेट में 35% की कमी की. इस आसान बदलाव से यह साबित हुआ कि असरदार ऑप्टिमाइज़ेशन के लिए, हमेशा जटिल इंजीनियरिंग की ज़रूरत नहीं होती.

R8 के फ़ुल मोड की मदद से, परफ़ॉर्मेंस को बेहतर बनाना

Monzo ने R8 के फ़ुल मोड को एक आसान समाधान के तौर पर पहचाना. यह समाधान काम कर गया और इससे परफ़ॉर्मेंस बेहतर हुई:

  • स्टार्टअप की विश्वसनीयता: कोल्ड स्टार्ट में 30%, वॉर्म स्टार्ट में 24%, और हॉट स्टार्ट में 14% का सुधार हुआ.
  • लॉन्च की स्पीड: P50 लॉन्च टाइम में 11% और P90 लॉन्च टाइम में 12% का सुधार हुआ.
  • क्षमता: ऐप्लिकेशन का कुल साइज़ 9% कम हुआ.
  • स्टेबिलिटी: एएनआर में 35% की कमी हुई.
AANDDM_Monzo_Quote-1.png
large_AANDDM_Monzo_Quote-2.png

एक बदलाव करके ऑप्टिमाइज़ेशन चालू करना

कई Android ऐप्लिकेशन, डिफ़ॉल्ट कॉन्फ़िगरेशन की पुरानी फ़ाइल का इस्तेमाल करते हैं. इससे, R8 ऑप्टिमाइज़र की ज़्यादातर सुविधाएं बंद हो जाती हैं. Monzo ने परफ़ॉर्मेंस को बेहतर बनाने के लिए, डिफ़ॉल्ट फ़ाइल proguard-android.txt को proguard-android-optimize.txt से बदल दिया. इस बदलाव से -dontoptimize निर्देश हट जाता है और R8 अपना काम सही तरीके से कर पाता है.

buildTypes {
  release {
    isMinifyEnabled = true
    isShrinkResources = true
    proguardFiles(
      getDefaultProguardFile("proguard-android-optimize.txt"),
    )
  }
}

यह बदलाव करने के बाद, Keep कॉन्फ़िगरेशन फ़ाइलों को देखना ज़रूरी है. इन फ़ाइलों से R8 को पता चलता है कि आपके कोड के किन हिस्सों को नहीं छेड़ना है. आम तौर पर, ऐसा इसलिए किया जाता है, क्योंकि उन्हें डाइनैमिक तरीके से या बाहरी लाइब्रेरी से कॉल किया जाता है. ज़रूरत न होने पर भी Keep के नियमों को लागू करने से, R8 ज़्यादा काम कर सकता है.

बेसलाइन प्रोफ़ाइलों की मदद से, स्क्रोल की परफ़ॉर्मेंस को बेहतर बनाना

उपयोगकर्ता अनुभव को और बेहतर बनाने के लिए, Monzo ने बेसलाइन प्रोफ़ाइलें लागू कीं. खास तौर पर, इसका मकसद अपने मुख्य फ़ीड पर स्क्रोल और रेंडरिंग की परफ़ॉर्मेंस को बेहतर बनाना था. इस रणनीति से यह पक्का किया गया कि उपयोगकर्ता के सबसे सामान्य ऐक्शन—ऐप्लिकेशन खोलना और फ़ीड को स्क्रोल करना—पूरी तरह से ऑप्टिमाइज़ किए जाएं. रेंडरिंग पर इसका काफ़ी असर पड़ा: P90 स्क्रोल परफ़ॉर्मेंस 71% तेज़ हुई और P95 स्क्रोल परफ़ॉर्मेंस में 87% का सुधार हुआ. अब ऐप्लिकेशन को स्क्रोल करना पहले से ज़्यादा आसान है.

Monzo ने इन सुधारों को बनाए रखने के लिए, इन्हें अपनी रिलीज़ प्रोसेस में शामिल किया है. न्यूमेयर बताते हैं, "हम हर हफ़्ते (रात में बनने वाले वर्शन को चलाने से पहले) बेसलाइन प्रोफ़ाइल जनरेट करते हैं. साथ ही, पूरी होने के बाद, हम नए बदलावों को लागू करते हैं."

Android के मॉडर्न डेवलपमेंट के साथ अप-टू-डेट रहना

Monzo के अनुभव से पता चलता है कि Android के बिल्ड-टूलिंग से जुड़े सुझावों के साथ अप-टू-डेट रहने पर क्या किया जा सकता है. लेगसी ऐप्लिकेशन को अक्सर, रिफ़्लेक्शन के जटिल इस्तेमाल में परेशानी होती है. हालांकि, Monzo ने Keep के नियमों को सही तरीके से दस्तावेज़ में शामिल करके, आसानी से ट्रांज़िशन किया. न्यूमेयर बताते हैं, "हमेशा एक टिप्पणी जोड़ते हैं, जिसमें यह बताया जाता है कि Keep के नियम क्यों लागू किए गए हैं. इससे हमें पता चलता है कि नियमों को कब हटाया जा सकता है."

अन्य टीमों के लिए न्यूमेयर की सलाह? मौजूदा मानकों के हिसाब से, अपनी प्रोसेस की नियमित तौर पर जांच करें: "ऐप्लिकेशन की परफ़ॉर्मेंस के बारे में, Google के नए सुझाव देखें और जांच करें कि क्या आपने सभी नए सुझावों को फ़ॉलो किया है."

शुरू करने और R8 के बारे में ज़्यादा जानने के लिए, https://d.android.com/r8 पर जाएं

इसे लिखा है:

पढ़ना जारी रखें