𝗣𝗿𝗼𝗳𝗶𝗹𝗲-𝗚𝘂𝗶𝗱𝗲𝗱 𝗢𝗽𝘁𝗶𝗺𝗶𝘇𝗮𝘁𝗶𝗼𝗻 𝗳𝗼𝗿 𝗔𝗻𝗱𝗿𝗼𝗶𝗱 𝗔𝗽𝗽 𝗦𝘁𝗮𝗿𝘁𝘂𝗽

आम्ही आमचा Android cold start 1.2s वरून 380ms पर्यंत कमी केला.

बहुतेक ॲप्स पहिल्या लाँच दरम्यान सर्वात संथ (slowest) compilation mode वर चालतात. जेव्हा वापरकर्ता तुमचे ॲप पहिल्यांदा इंस्टॉल करतो, तेव्हा Android "interpret-only" mode वापरते. यामुळे तुमचे स्टार्टअप संथ होते. सिस्टम नंतर फक्त idle time दरम्यान कोड ऑप्टिमाइझ करते.

तुम्ही तीन-टप्प्यांच्या (three-step) pipeline वापरून हे सुधारू शकता.

  1. Baseline Profiles तयार करा Baseline Profiles सिस्टमला सांगतात की इंस्टॉल करताना कोणत्या classes compile करायच्या आहेत. तुमच्या CI pipeline मध्ये हे तयार करण्यासाठी Macrobenchmark वापरा. आमच्या profiles ने केवळ 12% methods कव्हर केले, परंतु स्टार्टअप वेळेतील 94% भाग हाताळला.

  2. DEX Layout Reordering सक्षम करा हे तुमच्या Gradle properties मधील एक सिंगल लाईन आहे. हे R8 ला तुमच्या DEX फाईलमध्ये startup classes एकत्र गटबद्ध (group) करण्यास सांगते. यामुळे page faults मध्ये 30% ते 50% घट होते. जेव्हा classes एकत्र राहतात, तेव्हा सिस्टम डिस्कमधून कमी अनावश्यक डेटा लोड करते.

  3. Cloud Profiles वापरा Google Play वापरकर्त्यांकडून profiles गोळा करते आणि ते नवीन इन्स्टॉल्सना पाठवते. यामुळे तुमच्या वेगातील वाढ अधिक प्रभावी होते.

आमच्या टेस्टिंगचे निकाल:

तुमच्या वर्कफ्लोसाठी महत्त्वाच्या टिप्स:

अधिक वेगवान ॲप्स तयार करण्यासाठी या लेयर्सचा (layers) वापर करा.

Source: https://dev.to/software_mvp-factory/profile-guided-optimization-for-android-app-startup-2i7a