Reddit با استفاده از Baseline Profiles و R8 سرعت راه‌اندازی برنامه را بیش از 50 درصد بهبود بخشید



ارسال شده توسط بن وایس – مهندس روابط توسعه‌دهنده و لورن دارسی – مدیر ارشد مهندسی Reddit

Reddit یکی از بزرگ‌ترین انجمن‌های اینترنتی جهان است که جوامع بی‌شماری را به دنبال سرگرمی، پاسخ به سؤالات روزمره و موارد دیگر گرد هم می‌آورد.

اخیراً، تیم برنامه اندروید خود را برای کاهش سرعت راه‌اندازی و بهبود عملکرد رندر با استفاده از آن بهینه‌سازی کرده است پروفایل های پایه. اما تیم به همین جا بسنده نکرد. توسعه دهندگان برنامه Reddit نیز اندروید را فعال ،د R8 کامپای، در حالت کامل برای به حدا،ر رساندن بهینه سازی کد بایت و استفاده می شود Jetpack Compose برای بازنویسی رابط کاربری قدیمی و بهبود تجربه کاربر و توسعه دهنده.

به حدا،ر رساندن بهینه سازی با استفاده از نمایه های پایه و حالت کامل R8

برنامه اندروید Reddit در طول سال ها تحت ارتقاء عملکرد بی شماری قرار گرفته است. توسعه‌دهندگان Reddit مدت‌هاست که فهرست کارهای سریع و آسان را برای بهینه‌سازی پاک کرده‌اند، اما تیم همچنان می‌خواهد برنامه را بهبود بخشد، عملکرد آن را به سطح بالاتری برساند و اطمینان حاصل کند که در هر دستگاه اندرویدی به خوبی اجرا می‌شود.

Rob McWhinnie، مهندس کارکنان Reddit می گوید: «ردیت به دنبال هر گونه بهبود استراتژیک در عملکرد برنامه خود است تا بتو،م تجربه اپلیکیشن را برای کاربران جدید و فعلی بهتر کنیم. «نمایه‌های پایه به خوبی با این مورد استفاده می‌شوند، زیرا بر اساس سفرهای کاربر حیاتی هستند.»

تیم مهندسی پلتفرم Reddit از معیارهای عملکرد و قابلیت مشاهده ویژه صفحه نمایش استفاده کرد تا به تیم های ویژگی خود کمک کند معیارهای کلیدی مانند زمان تا عملکرد تعاملی و اسکرول را بهبود بخشند. نمایه‌های خط پایه برای کمک به بهبود این معیارها و تجربه کاربر در پشت آن‌ها من، بودند، بنابراین تیم آنها را با استفاده از اطلاعات اطلاعات جغرافیایی و ک،‌های دستگاه، برای آسان‌تر ، ردیابی و بهینه‌سازی ادغام کرد.

این تیم برای پنج سفر حیاتی کاربر، مانند پیمایش فید خانگی، ورود به سیستم، راه‌اندازی پخش‌کننده ویدیوی تمام صفحه، پیمایش بین Subreddits و پیمایش فیدهای آن‌ها و استفاده از ویژگی چت، نمایه‌های پایه را ساخته است.

ساده‌سازی مدیریت پروفایل پایه در فرآیندهای یکپارچه‌سازی مداوم، Reddit را قادر ساخت تا نیاز به تعمیر و نگهداری دستی و بهینه‌سازی را کاهش دهد. اکنون، پروفایل‌های پایه به‌طور خودکار برای هر نسخه بازسازی می‌شوند.

فعال ، کامپای، بهینه سازی R8 اندروید در حالت کامل، زمینه دیگری بود که مهندسان Reddit روی آن کار ،د. این تیم قبلاً از R8 در حالت سازگاری استفاده کرده بود، اما برخی از کدهای قدیمی Reddit پیاده‌سازی ویژگی‌های تهاجمی‌تر R8 را دشوار می‌کرد. تیم ابتدا از طریق بدهی فنی موجود برنامه کار کرد و ادغام قابلیت‌های حالت کامل R8 و به حدا،ر رساندن بهینه‌سازی برنامه اندروید را آسان‌تر کرد.

کارت نقل قول با تصویر کاترین چی، مهندس ارشد در Reddit که می‌خواند: «اکنون کار با یک تیم برای ابزارسازی نمایه‌های خط پایه برای سفرهای کاربران حیاتی آن‌ها امری بی‌اهمیت است. ما آنها را در چند ساعت دور می زنیم و یک هفته بعد نتیجه را در تولید می بینیم.

بهبود با نمایه های پایه و حالت کامل R8

نمایه‌های پایه Reddit و بهینه‌سازی حالت کامل R8 منجر به بهبود عملکرد چندگانه در سراسر برنامه شد. معیارهای اولیه اولین نمایه خط پایه برای فیدهایی که میانگین بهبود زمان راه اندازی را 51 درصد نشان می دهد.. در حالی که پاسخ‌های Redditors در ابتدا پیشرفت‌های بزرگ راه‌اندازی را تأیید می‌کرد، بهینه‌سازی نمایه پایه برای سفرهای کمتر، مانند ورود به سیستم، گزارش‌های کاربر کمتری را مشاهده کرد.

نمایه های پایه برای خوراک خانگی 36 درصد کاهش در صدک 95 فریم های منجمد داشتند. نمایه‌های خط پایه برای فید انجمن همچنین بار صفحه نمایش و بهبود عملکرد اسکرول قوی را ارائه ،د. در صدک 90، صفحه نمایش زمان تعامل 12% بهبود یافت و زمان تا اولین قرعه کشی 22% کاهش یافت. عملکرد اسکرول Reddit نیز شاهد کاهش 12 درصدی در فریم های کند P90 بود.

ارتقاء به حالت کامل R8 منجر به افزایش میانگین رتبه بندی گوگل پلی شد. نسبت رتبه های مثبت جه، (چهار و پنج) چهار درصد افزایش یافته است، با کاهش چشمگیر گزارش های منفی. حالت کامل R8 نیز کل را کاهش داد درخواست پاسخ نمی دهد اشتباهات تقریبا 30٪.

به طور کلی، برنامه شاهد بهبود شروع سرد 20٪، بهبود عملکرد اسکرول 15٪ و پیشرفت های گسترده در دستگاه های پایین تر و بازارهای در حال ظهور بود. Google Play Vitals شاهد بهبودهایی در شروع سرد آهسته، کاهش 10 درصدی در فریم های بیش از حد ثابت و 30 درصد کاهش در فریم های آهسته بیش از حد بود. تقریباً 75 درصد از صفحه‌نمایش‌ها که با استفاده از Jetpack Compose بازسازی شده‌اند، عملکرد بهتری را تجربه کرده‌اند.

کارت نقل قول با تصویر لورن دارسی، مدیر ارشد مهندسی در Reddit که می‌خواند: «وقتی ویژگی‌ای را پیدا می‌کنید که کاربران آن را دوست دارند و با آن درگیر هستند، وقت صرف ، برای اصلاح و بهینه‌سازی آن می‌تواند تفاوت بین یک تجربه خوب و عالی برای شما باشد. کاربران

بهینه سازی های بیشتر با استفاده از Jetpack Compose

Reddit سال‌ها پیش Jetpack Compose را پذیرفت و از آن زمان بسیاری از UI خود را با این جعبه ابزار بازسازی کرده است که هم از برنامه و هم سیستم طراحی آن سود می‌برد. طبق گفته تیم Reddit، پشتیب، مداوم Google از ثبات و عملکرد Compose باعث شد تا زم، که Reddit برنامه خود را مقیاس‌بندی کرده، توسعه کارآمدتر ویژگی و عملکرد بهتر را به آن من، کند.

یکی از مثال‌های اصلی بازنویسی فید Reddit با استفاده از Compose است که منجر به کد قابل نگهداری بیشتر و تجربه توسعه‌دهنده بهبود یافته می‌شود. تیم‌های فعال را بنویسید تا به جای گرفتار شدن در کدهای قدیمی، روی کارهای آینده تمرکز کنند و به آن‌ها اجازه می‌دهد به سرعت اشکالات را برطرف کنند و ثبات کلی برنامه را بهبود بخشند.

درو هیونر، مهندس کارکنان در Reddit می‌گوید: «به‌روزرس،‌های R8 و Compose برای استقرار در انزوا و تثبیت نسبی مهم بودند. ما احساس می‌کنیم که نتایج عالی از این کار برای همه تیم‌هایی که پشته فناوری مدرن و Compose ما را اتخاذ می‌کنند، به دست آوردیم.»

پس از ارتقاء به نسخه Compose در سپتامبر 2024، آ،ین نسخه، Reddit شاهد پیشرفت های قابل توجهی در عملکرد در سراسر صفحه بود. زمان شروع سرد 13 درصد بهبود یافت، فریم های آهسته بیش از حد 25 درصد کاهش یافتند و فریم های ثابت 10 درصد کاهش یافتند. دستگاه‌های سطح پایین و می، پیشرفت‌های بیشتری را مشاهده ،د، جایی که زمان شروع برنامه تا 40٪ بهبود یافت.، به ویژه در بازارهایی که دستگاه های با عملکرد پایین تر دارند.

صفحه‌نمایش‌هایی که از مجموعه طراحی مدرن Reddit با Compose استفاده می‌کنند، پیشرفت‌های قابل‌توجهی در نرخ فریم آهسته و ثابت نشان دادند. برای مثال، فید خانگی شاهد کاهش 23 درصدی در فریم‌های ثابت بود و عملکرد اسکرول با توجه به بررسی‌های داخلی به‌طور قابل‌توجهی بهبود یافت. این به روز رس، ها به خوبی در بین کاربران مورد استقبال قرار گرفت و منع، شد 17 درصد افزایش میانگین رتبه بندی برنامه در Google Play.

کارت نقل قول با تصویری از ربات Android که از سمت راست به داخل نگاه می‌کند و نوشته شده است: Compose به ارائه ویژگی‌های جدید عالی برای تجربه کاربری پاسخگوتر ادامه می‌دهد. همچنین ثبات و بهبود عملکرد را فراهم می کند که ما می تو،م از آنها استفاده کنیم.

ارتقاء سطح UX از طریق بهینه سازی

افزودن ارزش به یک برنامه فقط به م،ای معرفی ویژگی‌های جدید نیست، بلکه شامل اصلاح و بهینه‌سازی ویژگی‌هایی است که کاربران قبلاً دوست دارند. سرمایه‌گذاری روی بهبود عملکرد، ویژگی‌های کلیدی Reddit را سریع‌تر و قابل اعتمادتر کرد و تجربه کلی کاربر را بهبود بخشید. این بهینه‌سازی‌ها نه تنها راه‌اندازی برنامه و عملکرد زمان اجرا را بهبود بخشید، بلکه گردش‌های کاری توسعه را نیز ساده‌تر کرد و رضایت توسعه‌دهنده و پایداری برنامه را افزایش داد.

تمرکز بر ویژگی‌های پرترافیک، مانند فیدها، قدرت تنظیم عملکرد را با دستاوردهای قابل توجهی در تعامل و رضایت کاربر نشان داده است. همانطور که برنامه کارآمدتر شده است، هم کاربران و هم توسعه دهندگان از یک پایگاه کد تمیزتر و عملکرد سریعتر بهره مند شده اند.

با نگاهی به آینده، Reddit قصد دارد استفاده از نمایه‌های پایه را به سایر سفرهای کاربر حیاتی، از جمله تجربیات پست و نظرات Reddit، گسترش دهد و اطمینان حاصل کند که کاربران بیشتری از این بهبودهای عملکرد مداوم بهره‌مند می‌شوند.

مهندسان پلتفرم Reddit همچنین می خواهند به همکاری با تیم های ویژگی برای ادغام بهبود عملکرد در سراسر برنامه ادامه دهند. این تلاش‌ها تضمین می‌کند که با تکامل برنامه، تجربه‌ای روان، سریع و جذاب برای همه Redditor‌ها باقی بماند.

لورن دارسی، مدیر ارشد مهندسی در Reddit گفت: «افزودن ویژگی‌های جدید تنها راه برای افزودن ارزش به تجربه برای کاربران نیست. وقتی ویژگی‌ای را پیدا می‌کنید که کاربران آن را دوست دارند و با آن درگیر می‌شوند، صرف زمان برای اصلاح و بهینه‌سازی آن می‌تواند تفاوت بین یک تجربه خوب و عالی برای کاربران شما باشد.»

شروع کنید

با استفاده از عملکرد برنامه خود را بهبود بخشید پروفایل های پایه، حالت کامل R8، و Jetpack Compose.


منبع: http://android-developers.googleblog.com/2024/12/reddit-improved-app-s،up-s،d-using-baseline-profiles-r8.html