Google'da menga yoqadigan narsalardan biri oldin hech qayerda ko'rmagan muammolar ustida ishlashimizdir.
2023-yil iyul oyida WearOS (soatlar uchun Android tizim) uchun Gmail ilovasini kompaniya bo'ylab ichki test, ya'ni betaga chiqardik. Avgust oyida beta-foydalanuvchilardan izoh va baholarni oldik.
O'rtacha baho 5 ballik tizimda 3.78 edi. Eng asosiy muammolaridan biri – ilovaning ishga tushish tezligi foydalanuvchilarga ma'qul kemabdi: "P50 (50th percentile) cold startup latency" tahminan 3.5 sekund bo'lgan.
Uni tezlashtirishimiz uchun 3 hafta vaqtimiz bor edi. Jamoaning ko'p a'zolari, shu jumladan men ham, bor e'tiborimizni shunga qaratdik:
1. Ilovaning "
trace"ini olib, uni tahlil qilib chiqdik. Soatlardagi CPU unchalik kuchli bo'lmaganligi sababli ilova ishga tushayotgan vaqtda ko'p protseslar CPU uchun kurashib, asosiy thread'ni band qilib qo'yayotgan ekan. Shunday protseslarni kamaytirish uchun zarur bo'lgan o'zgarishlarning ro'yhatini qilib, eng ko'p foyda beradigan 3-4 tasini tanlab oldik:
● Animatsiyalarni kamaytirish.
● "
Splash screen" ni uzoqroq ushlab turish.
● Server uchun kerakli obyektlarni ertaroq yaratish/yuklash.
2. Xattoki kichik animatsiya ham soat uchun og'irlik qiladigan bo'lib chiqdi. Ba'zi animatsiyalarni statik rasmlarga o'zgartirdik.
3. Odatda, ilova ochilayotgan paytda ko'rsatiladigan birinchi sahifa "splash screen" bo'ladi. Shu sahifani uzoqroq ushlab turadigan qildik. Natijada undan keyin keladigan ba'zi animatsiyalar CPU uchun kurashmaydigan bo'ldi.
4. Kerakli obyektlarni yaratishni splash screen bilan parallellashtirdik va ma'lumotlarni serverdan tezroq qabul qilib oldik.
5. Har bir o'zgarish foyda berayotganini bilish uchun A/B testlar qildik.
Yuqoridagilarni tugatganimizdan so'ng ilovaning o'rtacha ishga tushish tezligi 3.5 dan 1.8 sekundga tushdi.
Shu hamda beta-foydalanuvchilar topgan boshqa muammolarni ham to'g'rilaganimizdan keyin ularning o'rtacha bahosi 4.30 ga ko'tarildi.
Yaqinda
developers.android.com vebsaytida shu ishimizni "case study" sifatida
yozib chiqishibdi. Androidchilarga o'qib chiqishni maslahat beraman.
Kompaniyada ichki ilovalarning ishlashini yaxshilaganlarni har yarim yilda e'tirof etib turiladi. Biz ham shu qilgan ishimiz uchun "kumush medali 🥈"ni oldik.
@muhammadjohns