Voitot:
- Ottamalla ensin profiili ja mittaamalla todellinen pullonkaula, tekemällä optimointi datan perusteella arvauksen sijaan ja antamalla profiilin tulosteen tekoälyn tulkita
- Kyky kohdistaa kallein toiminta käynnistysajan, sujuvuuden, muistin ja akun suhteen ja poistaa raskaan työn päälangalta
- Kyky hallita tekoälyominaisuuksien akku- ja prosessorikustannuksia, kuten laitteessa oleva malli ja pilvipuhelut näytteenoton ja eräkäsittelyn avulla
Mobiilikäyttäjät ovat kärsimättömiä. Jos sovellus avautuu hitaasti, jumiutuu vierityksen aikana tai tyhjentää akun nopeasti, käyttäjä poistaa sen ja antaa sille tähtiarvosanan kaupassa. Suorituskyky ja akun tehokkuus ovat mobiilisovelluksen selviytymiskysymys; Se vaikuttaa suoraan sekä käyttäjätyytyväisyyteen että kaupan sijoitukseen. AI on tehokas apu suorituskyvyn pullonkaulojen havaitsemiseen, mittaustulosten tulkintaan ja optimointien suosittelemiseen. Mutta kultainen sääntö pysyy: mittaa ensin, optimoi myöhemmin. Tässä osiossa opimme ratkaisemaan suorituskyky- ja akkuongelmia datapohjaisella tavalla tekoälyn avulla. Erityisen tärkeä asia on aiempiin yksiköihin lisättyjen tekoälyominaisuuksien vaikutuksen hallinta (laitteessa oleva malli, pilvipuhelut).
Optimointi ilman mittaamista
Kokemattoman kehittäjän suurin virhe on ennakoiva optimointi: tuhlaa aikaa sanomalla "tämän täytyy olla hidasta". Todellinen pullonkaula on melkein aina odottamattomassa paikassa. Joten ensin otetaan profiili (profilointi - mitataan, mikä sovelluksen osa kuluttaa kuinka paljon aikaa/muistia/akkua). Android Studio Profiler ja Xcode Instruments ovat tätä työtä varten. Mittaustietojen antaminen tekoälylle nopeuttaa tulkintaa; Mutta ilman mittausta tekoälyn kertominen "sovellukseni on hidas, nopeuta" tarkoittaa sokeasti ennustamista.
Suorituskyvyn neljä pääakselia ovat:
akseli
oire
tyypillinen syy
Aloitusaika
Hakemus aukeaa myöhään
Raskasta työtä päälangalla
Sujuvuus (jakki)
Scroll juuttuu
Pitkä käsittely, tarpeeton uudelleenpiirtäminen käyttöliittymäsäikeessä
muisti
turvotus, romahdus
Vuoto, iso kuva, välimuisti hallitsematon
akku/lämpö
nopea siemensyöksy
Jatkuva sijainti, verkko, anturi, taustatyö
Vinkki: Kun kysyt tekoälyltä suorituskykyongelmasta, anna profiilin tulos (mikä toiminto kestää kuinka kauan, muistikaavio). Kovan datan, kuten "Tämä toiminto kestää 30 ms per kuva", avulla tekoäly voi keskittyä todelliseen pullonkaulan; Subjektiivinen lause, kuten "hidas", tuottaa yleisen ja hyödyttömän vastauksen.
AI-ominaisuuksien akun hinta
Tähän moduuliin lisätyt tekoälyominaisuudet ovat tehokkaita, mutta ne eivät ole ilmaisia. Laitteessa olevan mallin purkaminen rasittaa prosessoria ja akkua; Jatkuvasti käynnissä oleva kuvantunnistus (esim. kamera käsittelee jokaista kuvaa) lämmittää puhelimen ja tyhjentää akun muutamassa minuutissa. Cloud AI -puhelut sen sijaan kuluttavat akkua pitämällä verkkoradion (antennin, joka lähettää ja vastaanottaa dataa) päällä koko ajan. Ratkaisut: käytä laitteessa olevaa mallia vain tarvittaessa, ota kamerasta näyte muutaman kerran sekunnissa jokaisen ruudun sijaan, lähetä pilvipyyntöjä erässä, suorita raskasta nostoa laitteen latautuessa tai käyttämättömänä.
Varoitus: Jatkuvasti käynnissä oleva tekoälyominaisuus (suora käännös, jatkuva kohteen tunnistus) voi tyhjentää akun erittäin nopeasti, lämmittää laitteen ja järjestelmä saattaa häiritä sitä. Ominaisuus, joka saa käyttäjän tuntemaan, että tämä hinta on poistettu. Kysyn aina tekoälyltä "miten teen tästä ominaisuudesta akkuystävällisen?" Esitä myös kysymys.
Optimoinnin vaiheet
- Mittaa. Löydä todellinen pullonkaula Profilerin avulla; älä arvaa.
- Valitse suurin ongelma. Älä tavoittele 1 % parannusta; Tavoittele kallein kauppa.
- Kysy AI:ltä tietoja. Pyydä optimointiehdotus profiilin lähdöllä + asiaankuuluva koodi.
- Levitä ja mittaa uudelleen. Onko parannus todellinen? Onko numero laskenut?
- Regression ohjaus. Onko optimointi rikkonut mitään? Toista visuaalinen ja toiminnallinen testaus.
kolme minilaukkua
Tapaus 1 — Haku väärästä paikasta. Eräs ryhmä ajatteli, että luettelot olivat jumissa, ja muokkasi vierityskoodia viikkoja turhaan. Kun he ottivat profiloijan ja syöttivät tiedot tekoälylle, kävi ilmi, että todellinen pullonkaula oli kuvien uudelleenlataus verkon yli jokaisella rivillä. Kun visuaalinen välimuisti lisättiin, sujuvuus kasvoi 42 FPS:stä 60 FPS:ään. Oppitunti: mittaaminen välttää viikkojen turhan vaivan.
Tapaus 2 — Akun hirviöominaisuus. Käännössovellus lisäsi reaaliaikaisen tekstin käännöksen kameralla; Käyttäjät valittivat, että "puhelin lämpeni 15 minuutissa ja 30% akusta oli lopussa." Kun tekoälyä kuultiin, kameran havaittiin käsittelevän 30 kuvaa sekunnissa; Kun tämä pienennettiin 5 ruutuun ja tulos päivitettiin muutaman ruudun välein, akun kulutus putosi kolmannekseen, eikä laatu ollut havaittavissa. Oppitunti: Aseta tekoäly aina akkusilmukalla.
Tapaus 3 – Alku hitaasti. Sovellus avautui 4,5 sekunnissa; 20 % käyttäjistä poistui käynnistyksen yhteydessä. Profiili osoitti, että kaikki alkutyöt (analytiikka, tietojen lataus, mallin valmistelu) tehtiin peräkkäin pääsäikeessä. Tekoälyehdotuksen myötä näitä on lykätty ja jätetty taka-alalle; Avausaika lyhennettiin 1,3 sekuntiin ja poistumisprosentti puolitettiin. Oppitunti: tee aluksi vain välttämätön työ.
Heikko kehote / Vahva kehote
Heikko kehote: "Sovellukseni on hidas, nopeuta sitä."
Tehokas kehote: "Luettelon vieritys juuttuu Android-sovellukseeni. Profilointitiedot: bindImageView kestää 28 ms jokaisessa kehyksessä, kuvat ladataan verkosta joka kerta, välimuistia ei ole. Aiheeseen liittyvä koodi: [RecyclerView-sovittimen koodi]. Suosittele kolmea tehokkainta optimointia vaikutusjärjestyksessä. Ilmoita kunkin kuvanlaadun osalta, äläkä vähennä mahdollisia sivuvaikutuksia."
Kopioitavat mallit
Pullonkaula-analyysimalli: "Tulkitse seuraavat profiilitiedot ja etsi 3 kalleinta toimintoa: [profiler output]. Ehdota mahdollista syytä ja konkreettista optimointia kullekin. Anna suurin vaikutus ensin."
Akun optimointimalli: "Tämä ominaisuus tyhjentää akun nopeasti: [ominaisuus, esim. pysyvä sijainti]. Tee siitä akkuystävällinen: - Pienennä näytteenottotaajuutta - Rajoitus taustalla - Eräkäsittely - Suorita vain tarvittaessa Lajittele ratkaisuja käyttökokemusta häiritsemättä. [koodi]"
Käynnistyksen nopeutusmalli: "Nopeuta sovelluksen käynnistystä. Tällä hetkellä käynnissä olevat asiat käynnistyksen yhteydessä: [luettelo]. Mitä voidaan lykätä, taustalla tai laiskalatauksella? Erottele tärkeimmät. [koodi]"
Tekoälyominaisuuden kustannusmalli: "Arvioi lisäämäni [laitteessa oleva malli / pilvipuhelu]-ominaisuuden suorituskyky ja akun hinta. Luettele mittarit, jotka minun pitäisi mitata, ja strategiat kustannusten alentamiseksi. [koodi]"
Yleisiä virheitä
- Optimointi ilman mittausta. Todellinen pullonkaula on usein eri paikassa kuin ennustetaan.
- Pieniä voittoja tavoittelemassa. Pyri kalleimpiin toimiin yhden prosentin parannusten sijaan.
- Tekoälyominaisuuksien akun hinta huomioimatta. Jatkuvasti käynnissä oleva malli/kamera/verkko kuluttaa akkua.
- Väsyttää pääketjua. Aloittamisen ja vierityksen raskas nostaminen ei saa olla käyttöliittymän säikeessä.
- Ei mittaa uudelleen optimoinnin jälkeen. Varmista, että parannus on todellinen ja että se ei riko mitään.
- Suorituskyvyn mittaaminen emulaattorissa. Laitteen todellinen nopeus, lämpötila ja akku ovat täysin erilaisia.
Yhteenvetona
Suorituskyky ja akku ovat mobiilisovelluksen selviytymiskysymys. Kultainen sääntö: mittaa ensin, optimoi myöhemmin. Profiilitietojen antaminen tekoälylle nopeuttaa tulkintaa; Mittaamaton halu "nopeuttaa" johtaa sokeisiin arvauksiin. Tavoittele kallein kauppa, älä tavoittele pieniä voittoja. Tähän moduuliin lisätyt AI-ominaisuudet ovat tehokkaita, mutta ne aiheuttavat akun ja prosessorin kustannuksia; Hallitse näitä kustannuksia vähentämällä näytteenottotiheyttä, annosta ja suorittamalla vain tarvittaessa. Mittaa uudelleen todellisella laitteella jokaisen optimoinnin jälkeen.
Sovellustehtävä
Tuo profiili sovellukseen (oma projektisi tai esimerkki) tai luo malliprofiilituloste ja anna tekoälyn tulkita se "Pullonkaula-analyysimallilla". Käytä korkeimman vaikutuksen optimointia ja mittaa uudelleen: laskiko määrä todella? Arvioi myös tähän moduuliin lisäämäsi tekoälyominaisuus (laitteen malli tai pilvipuhelu) akun suhteen "AI-ominaisuuskustannusmallin" avulla ja määritä vähintään yksi akkua säästävä asetus.
tarkistuslista
- [ ] Sain profiilin ennen optimointia, en arvannut
- [ ] Tavoittelin kalleinta kauppaa, en hajauttanut pieniin voittoihin
- [ ] Annoin tekoälyprofiilin tiedot konkreettisina numeroina
- [ ] Arvioin tekoälyominaisuuksien akun/prosessorin kustannukset
- [ ] Poistin raskaan noston päälangasta
- [ ] Optimoinnin jälkeen mittasin uudelleen oikealla laitteella ja tarkistin regression