Monzo با بهروزرسانی ساده R8 سنجههای عملکرد را تا ۳۵٪ تقویت میکند
زمان خواندن: ۲ دقیقه
Monzo یک بانک دیجیتال در بریتانیا با ۱۵ میلیون مشتری است که درحال رشد است. با مقیاسبندی برنامه، تیم مهندسی زمان راهاندازی برنامه را بهعنوان حوزهای حیاتی برای بهبود شناسایی کرد، اما نگران بود که این کار نیازمند تغییرات قابلتوجهی در پایگاه کد آنها باشد.
با فعال کردن کامل بهینهسازیهای R8، Monzo توانست نرخ «برنامه پاسخ نمیدهد» (ANR) خود را بهمیزان قابلتوجه ۳۵٪ کاهش دهد. این تغییر ساده ثابت کرد که بهینهسازیهای تأثیرگذار همیشه به تلاشهای مهندسی پیچیده نیاز ندارند.
Unlocking broad performance wins with R8 full mode
Monzo حالت کامل R8 را بهعنوان راهحلی آسان و ارزشمند برای امتحان کردن شناسایی کرد؛ و این راهحل کارساز بود و عملکرد را در سراسر پلاتفرم بهبود بخشید:
- قابلیت اطمینان راهاندازی: شروع سرد ۳۰٪، شروع گرم ۲۴٪، و شروع داغ ۱۴٪ بهبود یافته است.
- سرعت راهاندازی: زمانهای راهاندازی P50 بهمیزان ۱۱٪ و زمانهای راهاندازی P90 بهمیزان ۱۲٪ بهبود یافته است.
- کارایی: اندازه کلی برنامه ۹٪ کاهش یافت.
- پایداری: کاهش ۳۵ درصدی خطای «برنامه پاسخ نمیدهد».
فعال کردن بهینهسازیها با یک تغییر
بسیاری از برنامههای 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 میتواند کارهای بیشتری انجام دهد.
بهبود عملکرد پیمایش با Baseline Profiles
برای بهبود بیشتر تجربه کاربری، Monzo نمایههای پایه را پیادهسازی کرد و بهطور خاص عملکرد پیمایش و پرداز را در فید اصلی خود هدف قرار داد. این استراتژی تضمین کرد که رایجترین مسیرهای کاربر (باز کردن برنامه و پیمایش فید) کاملاً بهینهسازی شوند. تأثیر آن بر رندرینگ قابلتوجه بود: عملکرد پیمایش P90 تا ۷۱٪ سریعتر شد و عملکرد پیمایش P95 تا ۸۷٪ بهبود یافت. اکنون پیمایش برنامه روانتر از قبل است.
Monzo این را در فرایند انتشار خود گنجانده است تا این بهبودها را درطول زمان حفظ کند. نومایر توضیح میدهد: «ما هر روز هفته (قبلاز اجرای ساختهای شبانه) تولید نمایه پایه را راهاندازی میکنیم و پساز تکمیل، آخرین تغییرات را اعمال میکنیم.»
همگام شدن با توسعه مدرن Android
تجربه Monzo نشان میدهد که وقتی با توصیههای ابزار ساخت Android بهروز میمانید، چه چیزی امکانپذیر است. درحالیکه برنامههای قدیمی اغلب با استفاده از بازتاب پیچیده مشکل دارند، Monzo با مستندسازی صحیح «قوانین حفظ» خود، انتقال را ساده یافت. نومایر میگوید: «ما همیشه نظری اضافه میکنیم که توضیح میدهد چرا «قوانین حفظ» وجود دارند، بنابراین میدانیم چه زمانی میتوانیم قوانین را برداریم.»
توصیه نومایر برای تیمهای دیگر چیست؟ بهطور منظم شیوههایتان را با استانداردهای فعلی مقایسه کنید: «جدیدترین توصیههای Google را درباره عملکرد برنامه بررسی کنید و ببینید آیا از همه جدیدترین توصیهها پیروی میکنید یا نه.»
برای شروع به کار و کسب اطلاعات بیشتر درباره R8، به https://d.android.com/r8 بروید
-
مطالعات موردیGrab اَبَربرنامه پیشرو در آسیای جنوب شرقی است که خدمات تحویل، جابهجایی، و مالی را ازطریق یک برنامه به میلیونها کاربر در هشت کشور ارائه میدهد.
Ajesh Pai, Nguyen Van Minh, Tracy Agyemang • ۵ دقیقه خواندن -
مطالعات موردی«واتساپ» بزرگترین پلاتفرم پیامرسانی در جهان است که به میلیاردها کاربر در سراسر جهان خدمات ارائه میدهد. این برنامه ابزار ارتباطی پیشفرض برای افراد در مناطق مختلف است و کاربران را ازطریق پیامرسانی خصوصی، قابلاعتماد، و امن به یکدیگر متصل میکند.
Niharika Arora, Tracy Agyemang, Mayank Jain • ۸ دقیقه خواندن -
مطالعات موردیTinder مأموریت دارد با آسان و سرگرمکننده کردن ملاقات برای هر نسل جدید از افراد مجرد، ارتباطات واقعی را تقویت کند و الهامبخش آنها باشد.
Ajesh Pai, Ulises Uriel Verduzco Díaz , Tracy Agyemang • زمان خواندن: ۴ دقیقه
جدیدترین اطلاعات آماری توسعه Android را بهصورت هفتگی در صندوق ورودیتان دریافت کنید.