Qazanclar:
- Əvvəlcə bir profil götürərək və real darboğazı ölçməklə, təxminlərə deyil, verilənlərə əsaslanan optimallaşdırma apararaq və profil çıxışının süni intellekt tərəfindən şərh edilməsinə sahib olun.
- Başlanğıc vaxtı, axıcılıq, yaddaş və batareya baxımından ən bahalı əməliyyatı hədəfləmək və ağır işi əsas ipdən çıxarmaq bacarığı
- Nümunə alma və toplu emal vasitəsilə cihazda model və bulud çağırışı kimi AI imkanlarının batareya və prosessor dəyərini idarə etmək bacarığı
Mobil istifadəçilər səbirsizdirlər. Proqram yavaş açılırsa, sürüşərkən asılırsa və ya batareyanı tez boşaldırsa, istifadəçi onu silir və mağazada ona ulduz reytinqi verir. Performans və batareyanın səmərəliliyi mobil tətbiqin sağ qalması məsələsidir; Bu, həm istifadəçi məmnuniyyətinə, həm də mağaza sıralamasına birbaşa təsir edir. Süni intellekt performans darboğazlarını (darboğazları) aşkar etmək, ölçmə nəticələrini şərh etmək və optimallaşdırmaları tövsiyə etmək üçün güclü köməkçidir. Ancaq qızıl qayda qalır: əvvəlcə ölçün, sonra optimallaşdırın. Bu bölmədə biz AI ilə performans və batareya problemlərini data əsaslı şəkildə həll etməyi öyrənəcəyik. Xüsusilə vacib məsələ batareyaya təsirin idarə edilməsi və əvvəlki bölmələrdə əlavə etdiyimiz AI imkanlarının (cihazdaxili model, bulud zəngi) işləməsidir.
Ölçmədən optimallaşdırma
Təcrübəsiz bir tərtibatçının ən böyük səhvi proqnozlaşdırıcı optimallaşdırmadır: "bu yavaş olmalıdır" deyərək vaxt itirmək. Əsl darboğaz demək olar ki, həmişə gözlənilməz bir yerdə olur. Beləliklə, əvvəlcə profil alınır (profilləşdirmə — tətbiqin hansı hissəsinin nə qədər vaxt/yaddaş/batareya sərf etdiyini ölçmək). Android Studio Profiler və Xcode Instruments bu iş üçündür. Ölçmə məlumatlarının AI-yə verilməsi şərhi sürətləndirir; Ancaq ölçmədən, AI-yə "mənim tətbiqim yavaşdır, sürətləndirin" demək kor-koranə proqnozlar vermək deməkdir.
Performansın dörd əsas oxları bunlardır:
ox
simptom
tipik səbəb
Başlama vaxtı
Tətbiq gec açılır
Əsas ip üzərində ağır iş
Sərbəstlik (cəldlik)
Scroll ilişib qalır
Uzun emal, UI ipində lazımsız yenidən çəkilmə
yaddaş
şişkinlik, çökmə
Sızma, böyük şəkil, önbellek nəzarətsiz
batareya/istilik
sürətli boşalma
Davamlı yer, şəbəkə, sensor, fon işi
İpucu: Süni intellektdən performans problemi ilə bağlı sual verərkən, profil çıxışını verin (hansı funksiya nə qədər vaxt aparır, yaddaş qrafiki). “Həmin funksiya hər kadra 30 ms çəkir” kimi sərt məlumatlar AI-yə real darboğaza diqqət yetirməyə imkan verir; "Yavaş" kimi subyektiv ifadə ümumi və faydasız cavab verir.
AI qabiliyyətlərinin batareya dəyəri
Bu modula əlavə etdiyimiz AI xüsusiyyətləri güclüdür, lakin pulsuz deyil. Cihazda olan modelin çıxarılması prosessoru və batareyanı gərginləşdirir; Daimi işləyən təsvirin tanınması (məsələn, kameranın hər bir çərçivəni emal etməsi) telefonu qızdıracaq və bir neçə dəqiqə ərzində batareyanı boşaldacaq. Digər tərəfdən, Cloud AI zəngləri, şəbəkə radiosunu (məlumat göndərən və qəbul edən antenna) hər zaman açıq saxlayaraq batareyanı yeyir. Həll yolları: cihazda olan modeli yalnız lazım olduqda işə salın, hər kadr yerinə saniyədə bir neçə dəfə kameradan nümunə götürün, toplu olaraq bulud sorğuları göndərin, cihaz doldurularkən və ya boş olduqda ağır yükləri qaldırın.
Diqqət: Davamlı işləyən AI funksiyası (canlı tərcümə, davamlı obyekt tanıma) batareyanı çox tez boşalda, cihazı qızdıra və sistem tərəfindən zəiflədilə bilər. İstifadəçiyə bu dəyərin silindiyini hiss etdirən bir xüsusiyyət. Mən həmişə AI-dən soruşuram: "Bu xüsusiyyəti batareya ilə necə uyğunlaşdıra bilərəm?" sualını da verin.
Optimallaşdırma addımları
- Ölçmək. Profiler ilə əsl darboğazı tapın; təxmin etmə.
- Ən böyük problemi seçin. 1% yaxşılaşmanın arxasınca getməyin; Ən bahalı əməliyyatı hədəfləyin.
- Məlumatlarla AI-dan soruşun. Profil çıxışı + müvafiq kod ilə optimallaşdırma təklifi tələb edin.
- Tətbiq edin və yenidən ölçün. Təkmilləşdirmə realdırmı? Say azalıb?
- Reqressiya nəzarəti. Optimallaşdırma nəyisə pozdu? Vizual və funksional testləri təkrarlayın.
üç mini qutu
1-ci hal - Səhv yerdə axtarış. Bir komanda siyahıların ilişib qaldığını düşündü və həftələr boyu sürüşmə kodunu yenidən işlətdi və nəticə vermədi. Onlar profili götürüb məlumatları süni intellektə ötürdükdə məlum oldu ki, əsl darboğaz hər sıra ilə şəbəkə üzərindən yenidən yüklənən şəkillərdir. Vizual keş əlavə edildikdə, axıcılıq 42 FPS-dən 60 FPS-ə yüksəldi. Dərs: ölçmə həftələrlə boş səylərdən qaçınır.
Case 2 - Batareya canavarı xüsusiyyəti. Tərcümə proqramı kamera ilə canlı mətn tərcüməsi əlavə etdi; İstifadəçilər “telefon 15 dəqiqəyə qızdırılıb və batareyanın 30%-i bitib” deyə şikayətləniblər. Süni intellektlə məsləhətləşəndə kameranın saniyədə 30 kadr emal etdiyi məlum oldu; Bu 5 kadra endirildikdə və nəticə bir neçə kadr aralığında yeniləndikdə, batareya sərfiyyatı üçdə birinə qədər azaldı və keyfiyyət nəzərə çarpmadı. Dərs: AI-ni həmişə batareya gözü ilə təyin edin.
3-cü hal - yavaş başlanğıc. Proqram 4,5 saniyəyə açılırdı; İstifadəçilərin 20%-i başlanğıcda çıxış edirdi. Profil göstərdi ki, bütün ilkin işlər (analitika, məlumatların yüklənməsi, modelin hazırlanması) ardıcıl olaraq əsas ipdə aparılıb. AI təklifi ilə bunlar təxirə salındı və arxa plana qoyuldu; Açılış vaxtı 1,3 saniyəyə endirildi və imtina nisbəti iki dəfə azaldı. Dərs: başlanğıcda yalnız vacib işləri yerinə yetirin.
Zəif məlumat / Güclü göstəriş
Zəif göstəriş: "Mənim tətbiqim yavaşdır, sürətləndirin."
Güclü göstəriş: "Siyahının sürüşdürülməsi Android tətbiqimdə ilişib qalır. Profiler məlumatları: bindImageView hər çərçivədə 28 ms çəkir, şəkillər hər dəfə şəbəkədən yüklənir, heç bir keş yoxdur. Əlaqədar kod: [RecyclerView adapter kodu]. Təsir sırasına görə 3 ən effektiv optimallaşdırmanı tövsiyə edin. Gözlənilən faydaları və mümkün yan təsirləri azaldacaq hər bir təsviri qeyd edin. keyfiyyət."
Kopyalana bilən şablonlar
Darboğaz təhlili şablonu: "Aşağıdakı profil məlumatlarını şərh edin və 3 ən bahalı əməliyyatı tapın: [profiler çıxışı]. Hər biri üçün mümkün səbəb və konkret optimallaşdırma təklif edin. Əvvəlcə ən yüksək effekti verin."
Batareyanın optimallaşdırılması şablonu:"Bu funksiya batareyanı tez boşaldır: [xüsusiyyət, məsələn, daimi yer]. Onu batareyaya uyğunlaşdırın:- Nümunə alma tezliyini azaldın- Arxa fonda məhdudlaşdırın- Toplu emal- Yalnız lazım olduqda işə salın İstifadəçi təcrübəsini pozmadan həlləri çeşidləyin. [kod]"
Başlanğıc sürətləndirici şablon: "Tətbiqlərin işə salınmasını sürətləndirin. Hazırda işə salınarkən görülən işlər: [siyahı]. Hansı təxirə salına, arxa plana keçə və ya tənbəl yüklənə bilər? Əsas olanları ayırın. [kod]"
AI xüsusiyyətinin dəyəri şablonu: "Əlavə etdiyim [cihazdaxili model / bulud zəngi] funksiyasının performansını və batareyanın qiymətini qiymətləndirin. Ölçməli olduğum ölçüləri və dəyəri azaltmaq üçün strategiyaları sadalayın. [kod]"
Ümumi səhvlər
- Ölçmədən optimallaşdırma. Əsl darboğaz çox vaxt proqnozlaşdırılandan fərqli bir yerdə olur.
- Kiçik qazancları təqib etmək. 1% təkmilləşmədən çox, ən bahalı əməliyyatı hədəfləyin.
- AI xüsusiyyətlərinin batareya dəyərinə məhəl qoymadan. Daimi işləyən model/kamera/şəbəkə batareyanı yeyir.
- Əsas mövzunu yorur. Başlanğıc və sürüşmənin ağır yüklənməsi UI mövzusunda olmamalıdır.
- Optimallaşdırmadan sonra yenidən ölçmə aparılmır. Təkmilləşdirmənin real olduğunu və heç nəyi pozmadığını yoxlayın.
- Emulatorda performansın ölçülməsi. Cihazın faktiki sürəti, temperaturu və batareyası tamamilə fərqlidir.
Xülasə
Performans və batareya mobil tətbiqin sağ qalması məsələsidir. Qızıl qayda: əvvəlcə ölçün, sonra optimallaşdırın. Profil məlumatlarının AI-yə verilməsi şərhi sürətləndirir; “Sürətləndirmək” üçün ölçüyəgəlməz arzu kor-koranə təxminlərə gətirib çıxarır. Ən bahalı əməliyyatı hədəfləyin, kiçik qazancların dalınca getməyin. Bu modula əlavə edilən AI imkanları güclüdür, lakin batareya və prosessor xərclərini daşıyır; Nümunə alma tezliyini, toplulaşdırmanı və yalnız lazım olduqda işə salmaqla bu xərcləri idarə edin. Hər optimallaşdırmadan sonra real cihazda yenidən ölçün.
Tətbiq tapşırığı
Tətbiqdə profili idxal edin (öz layihəniz və ya nümunəniz) və ya nümunə profil çıxışı yaradın və onu "Darboğaz təhlili şablonu" ilə AI tərəfindən şərh edin. Ən yüksək təsir optimallaşdırmasını tətbiq edin və yenidən ölçün: rəqəm həqiqətən azalıbmı? Həmçinin, bu modula əlavə etdiyiniz süni intellekt funksiyasını (cihazdaxili model və ya bulud zəngi) "AI xüsusiyyət dəyəri şablonu" ilə batareya baxımından qiymətləndirin və ən azı bir batareyaya uyğun parametr təyin edin.
yoxlama siyahısı
- [ ] Optimallaşdırmadan əvvəl profil aldım, təxmin etmədim
- [ ] Ən bahalı ticarəti hədəflədim, Xırda mənfəətə səpilmədim
- [ ] Mən AI profil məlumatlarını konkret rəqəmlərlə verdim
- [ ] Mən AI xüsusiyyətlərinin batareya/prosessor qiymətini qiymətləndirdim
- [ ] Ağır yükü əsas ipdən çıxardım
- [ ] Optimallaşdırmadan sonra mən real cihazda yenidən ölçdüm və reqressiyanı yoxladım