Daromadlar:
- Avval profilni olish va haqiqiy to'siqni o'lchash, taxmin qilishdan ko'ra ma'lumotlarga asoslangan optimallashtirish va profil natijasini sun'iy intellekt tomonidan izohlash orqali
- Ishga tushirish vaqti, ravonlik, xotira va batareya nuqtai nazaridan eng qimmat operatsiyani maqsad qilib olish va asosiy ish zarrachasidan og'ir ishlarni olib tashlash qobiliyati
- Namuna olish va ommaviy qayta ishlash orqali qurilmadagi model va bulutli qo'ng'iroqlar kabi AI imkoniyatlarining batareya va protsessor narxini boshqarish qobiliyati
Mobil foydalanuvchilari sabrsiz. Agar dastur sekin ochilsa, aylanayotganda osilib qolsa yoki batareyani tezda tugatsa, foydalanuvchi uni o'chiradi va do'konda yulduzcha bahosini beradi. Ishlash va batareya samaradorligi mobil ilovaning omon qolishi masalasidir; Bu foydalanuvchi qoniqishiga ham, do'kon reytingiga ham bevosita ta'sir qiladi. Sun'iy intellekt ishlashdagi qiyinchiliklarni (darbo'yinlarni) aniqlashda, o'lchov natijalarini sharhlashda va optimallashtirishni tavsiya qilishda kuchli yordamdir. Ammo oltin qoida saqlanib qolmoqda: avval o'lchash, keyinroq optimallashtirish. Ushbu bo'limda biz sun'iy intellekt yordamida ishlash va batareya muammolarini ma'lumotlarga asoslangan holda hal qilishni o'rganamiz. Ayniqsa, muhim masala batareyaga ta'sirni boshqarish va biz oldingi qurilmalarda qo'shgan AI imkoniyatlarini (qurilma modeli, bulutli qo'ng'iroqlar) boshqarishdir.
O'lchovsiz optimallashtirish
Tajribasiz ishlab chiquvchining eng katta xatosi bu bashoratli optimallashtirishdir: "bu sekin bo'lishi kerak" deb vaqtni yo'qotish. Haqiqiy darboğaz deyarli har doim kutilmagan joyda bo'ladi. Shunday qilib, avval profil olinadi (profillash - ilovaning qaysi qismi qancha vaqt/xotira/batareyani iste'mol qilishini o'lchash). Android Studio Profiler va Xcode Instruments bu ish uchun. AIga o'lchov ma'lumotlarini berish talqin qilishni tezlashtiradi; Ammo o'lchovsiz, AIga "mening ilovam sekin, tezlashtiring" deyish ko'r-ko'rona bashorat qilishni anglatadi.
Ishlashning to'rtta asosiy o'qi:
o'qi
simptom
tipik sabab
Boshlanish vaqti
Ilova kech ochiladi
Asosiy ipda og'ir ish
Ravonlik (jank)
Scroll tiqilib qoladi
Uzoq ishlov berish, UI ipida keraksiz qayta chizish
xotira
shish, qulash
Oqish, katta tasvir, kesh nazoratsiz
batareya / issiqlik
tez eyakulyatsiya
Uzluksiz joylashuv, tarmoq, sensor, fon ishi
Maslahat: AIdan ishlash muammosi haqida so'raganda, profil chiqishini bering (qaysi funktsiya qancha vaqt oladi, xotira grafigi). "Ushbu funktsiya har bir kadr uchun 30ms oladi" kabi qattiq ma'lumotlar AIga haqiqiy muammoga e'tibor qaratish imkonini beradi; "Sekin" kabi sub'ektiv ibora umumiy va foydasiz javobni keltirib chiqaradi.
AI qobiliyatlarining batareya narxi
Ushbu modulga biz qo'shgan AI xususiyatlari kuchli, ammo ular bepul emas. Qurilmadagi modelni chiqarib olish protsessor va batareyani zo'riqtiradi; Doimiy ishlayotgan tasvirni aniqlash (masalan, kamera har bir kadrni qayta ishlash) telefonni isitadi va batareya quvvatini bir necha daqiqada tugatadi. Boshqa tomondan, bulutli AI qo'ng'iroqlari tarmoq radiosini (ma'lumot yuboradigan va qabul qiluvchi antennani) doimo yoqilgan holda ushlab turish orqali batareya quvvatini iste'mol qiladi. Yechimlar: qurilmadagi modelni faqat kerak bo‘lganda ishga tushiring, har bir kadr o‘rniga soniyasiga bir necha marta kameradan namuna oling, bulutli so‘rovlarni to‘plab yuboring, qurilma zaryad olayotganda yoki ishlamay qolganda og‘ir yuklarni ko‘taring.
Diqqat: Doimiy ishlaydigan AI funksiyasi (jonli tarjima, ob'ektni uzluksiz aniqlash) batareyani juda tez zaryadsizlantirishi, qurilmani qizdirishi va tizim tomonidan o'chirilishi mumkin. Foydalanuvchiga bu xarajat o'chirilganligini his qiladigan xususiyat. Men har doim sun'iy intellektdan "qanday qilib bu xususiyatni batareyaga qulay qilishim mumkin?" Shuningdek, savol bering.
Optimallashtirish bosqichlari
- O'lchov. Profiler bilan haqiqiy to'siqni toping; taxmin qilmang.
- Eng katta muammoni tanlang. 1% yaxshilanishni ta'qib qilmang; Eng qimmat tranzaksiyaga intiling.
- AIdan ma'lumotlar bilan so'rang. Profil chiqishi + tegishli kod bilan optimallashtirish taklifini so'rang.
- Qo'llash va qayta o'lchash. Yaxshilanish haqiqatmi? Raqam tushib ketdimi?
- Regressiya nazorati. Optimallashtirish biror narsani buzdimi? Vizual va funktsional testlarni takrorlang.
uchta mini holat
1-holat - noto'g'ri joyda qidirish. Bir jamoa ro'yxatlar yopishib qolgan deb o'yladi va bir necha hafta davomida aylantiruvchi kodni qayta ishladi, natija bermadi. Ular profilerni olib, ma'lumotlarni sun'iy intellektga yuborganlarida, haqiqiy to'siq har bir qatorda tarmoq orqali qayta yuklanadigan tasvirlar ekanligi ma'lum bo'ldi. Vizual kesh qo'shilgach, ravonlik 42 FPS dan 60 FPS gacha ko'tarildi. Dars: o'lchov bir necha haftalik behuda harakatlardan qochadi.
2-holat - Batareya monster xususiyati. Tarjima ilovasi kamera bilan jonli matn tarjimasini qo'shdi; Foydalanuvchilar “telefon 15 daqiqada qizib ketdi va batareyaning 30 foizi o‘tib ketdi”, deb shikoyat qilishdi. AI bilan maslahatlashganda, kamera soniyasiga 30 kadrni qayta ishlayotgani aniqlandi; Bu 5 kvadratgacha qisqartirilganda va natija bir necha kvadrat masofada yangilanganda, batareya sarfi uchdan biriga kamaydi va sifati sezilmadi. Dars: AIni har doim batareya ko'zi bilan o'rnating.
3-holat - sekin boshlanadi. Ilova 4,5 soniyada ochildi; Foydalanuvchilarning 20% ishga tushirish vaqtida chiqib ketishgan. Profil barcha dastlabki ishlar (tahlil, ma'lumotlarni yuklash, modelni tayyorlash) asosiy ipda ketma-ket bajarilganligini ko'rsatdi. AI taklifi bilan ular qoldirildi va orqaga qo'yildi; Ochilish vaqti 1,3 sekundgacha qisqartirildi va tark etish darajasi ikki baravar kamaydi. Dars: boshida faqat muhim ishlarni bajaring.
Zaif taklif / Kuchli taklif
Zaif taklif: "Mening ilovam sekin, tezlashtiring."
Kuchli soʻrov: "Roʻyxatni aylantirish mening Android ilovamga yopishib qoldi (jank). Profiler maʼlumotlari: bindImageView har bir kadrda 28 ms vaqt oladi, tasvirlar har safar tarmoqdan yuklanadi, kesh yoʻq. Tegishli kod: [RecyclerView adapter kodi]. Taʼsir qilish tartibi boʻyicha 3 ta eng samarali optimallashtirishni tavsiya eting. Kutilayotgan foyda va mumkin boʻlgan nojoʻya taʼsirlarni kamaytirmaydigan har bir tasvirni belgilang. sifat."
Nusxalanadigan shablonlar
Darboğaz tahlili shabloni: "Quyidagi profil ma'lumotlarini talqin qiling va 3 ta eng qimmat operatsiyani toping: [profiler chiqishi]. Har biri uchun mumkin bo'lgan sabab va aniq optimallashni taklif qiling. Avval eng yuqori ta'sirni bering."
Batareya quvvatini optimallashtirish shabloni:"Ushbu xususiyat batareya quvvatini tezda tugatadi: [xususiyat, masalan, doimiy joylashuv]. Uni batareya quvvatiga moslashtiring:- Namuna olish chastotasini kamaytiring- Fonda cheklash- To‘plamli ishlov berish- Faqat kerak bo‘lganda ishga tushiring. Foydalanuvchi tajribasini buzmasdan yechimlarni saralang. [kod]"
Ishga tushirishni tezlashtirish shabloni: "Ilovani ishga tushirishni tezlashtiring. Hozirda ishga tushirish vaqtida bajarilayotgan ishlar: [roʻyxat]. Qaysi biri keyinga qoldirilishi, orqa fonda yoki dangasa yuklanishi mumkin? Eng muhimlarini ajratib oling. [kod]"
AI xususiyatining narxi shabloni: "Men qo‘shgan [qurilma modeli / bulutli qo‘ng‘iroq] funksiyasining ishlashi va batareya narxini baholang. O‘lchashim kerak bo‘lgan ko‘rsatkichlar va xarajatlarni kamaytirish strategiyalarini sanab o‘ting. [kod]"
Umumiy xatolar
- O'lchovsiz optimallashtirish. Haqiqiy to'siq ko'pincha bashorat qilinganidan boshqa joyda bo'ladi.
- Kichik daromadlarni ta'qib qilish. 1% yaxshilanishni emas, balki eng qimmat harakatni maqsad qilib qo'ying.
- AI xususiyatlarining batareya narxiga e'tibor bermaslik. Doimiy ishlaydigan model/kamera/tarmoq batareya quvvatini yeydi.
- Asosiy mavzuni charchatish. Boshlash va aylantirishning og'ir yuklari UI ipida bo'lmasligi kerak.
- Optimallashtirishdan keyin qayta o'lchash emas. Yaxshilanish haqiqiy ekanligini va hech narsani buzmasligiga ishonch hosil qiling.
- Emulyatorda ishlashni o'lchash. Qurilmaning haqiqiy tezligi, harorati va batareyasi butunlay boshqacha.
Xulosa
Ishlash va batareya mobil ilovaning omon qolishi masalasidir. Oltin qoida: avval o'lchang, keyin optimallashtiring. AIga profil ma'lumotlarini berish talqinni tezlashtiradi; "Tezlashtirish" uchun o'lchanmas istak ko'r-ko'rona taxminlarga olib keladi. Eng qimmat tranzaktsiyaga intiling, kichik daromadlarni ta'qib qilmang. Ushbu modulga qo'shilgan AI qobiliyatlari kuchli, ammo batareya va protsessor xarajatlarini o'z ichiga oladi; Namuna olish chastotasini kamaytirish, paketlash va faqat kerak bo'lganda ishga tushirish orqali ushbu xarajatlarni boshqaring. Har bir optimallashtirishdan keyin haqiqiy qurilmada yana o'lchang.
Ilova vazifasi
Ilovada profilni import qiling (o'zingizning loyihangiz yoki misolingiz) yoki namunaviy profil chiqishini yarating va uni AI tomonidan "Bo'g'in tahlili shabloni" bilan talqin qiling. Eng yuqori ta'sirni optimallashtirishni qo'llang va yana o'lchang: raqam haqiqatdan ham tushib ketdimi? Shuningdek, ushbu modulga qo‘shgan AI xususiyatini (qurilma modeli yoki bulut qo‘ng‘irog‘i) “AI xususiyati narxi shabloni” bilan batareya quvvati nuqtai nazaridan baholang va kamida bitta batareyaga mos sozlamani aniqlang.
nazorat ro'yxati
- [ ] Men optimallashtirishdan oldin profilni oldim, men taxmin qilmadim
- [ ] Men eng qimmat savdoni maqsad qildim, kichik foydaga sochmadim
- [ ] Men AI profil maʼlumotlarini aniq raqamlarda berdim
- [ ] AI xususiyatlarining batareya/protsessor narxini baholadim
- [ ] Men asosiy ipdan og'ir yukni olib tashladim
- [ ] Optimallashtirishdan so'ng, men haqiqiy qurilmada yana o'lchab chiqdim va regressiyani tekshirdim