Einheit 8 / 11

Leistungs- und Batterieoptimierung: Schnelle und effiziente Anwendungen mit künstlicher Intelligenz

Gewinne:

  • Indem Sie zunächst ein Profil erstellen und den tatsächlichen Engpass messen, die Optimierung auf der Grundlage von Daten statt auf Vermutungen vornehmen und die Profilausgabe durch künstliche Intelligenz interpretieren lassen
  • Möglichkeit, sich auf den Vorgang zu konzentrieren, der im Hinblick auf Startzeit, Sprachkompetenz, Speicher und Akku am teuersten ist, und die schwere Arbeit aus dem Hauptthread zu entfernen
  • Möglichkeit zur Verwaltung der Batterie- und Prozessorkosten von KI-Funktionen wie On-Device-Modell und Cloud-Calling durch Sampling und Stapelverarbeitung

Mobile Nutzer sind ungeduldig. Wenn sich die App langsam öffnet, beim Scrollen hängen bleibt oder der Akku schnell leer wird, löscht der Nutzer sie und gibt ihr im Store eine Sternebewertung. Leistung und Akkueffizienz sind eine Frage des Überlebens einer mobilen App; Es wirkt sich direkt auf die Benutzerzufriedenheit und das Shop-Ranking aus. KI ist ein leistungsstarkes Hilfsmittel, um Leistungsengpässe (Bottlenecks) zu erkennen, Messergebnisse zu interpretieren und Optimierungen zu empfehlen. Doch die goldene Regel bleibt bestehen: Erst messen, dann optimieren. In dieser Einheit lernen wir, Leistungs- und Batterieprobleme datenbasiert mit KI zu lösen. Ein besonders wichtiges Thema ist die Bewältigung der Auswirkungen auf den Akku und die Leistung der KI-Funktionen, die wir in früheren Einheiten hinzugefügt haben (Modell auf dem Gerät, Cloud-Anrufe).

Optimieren ohne zu messen

Der größte Fehler eines unerfahrenen Entwicklers ist die prädiktive Optimierung: Zeitverschwendung mit der Aussage „Das muss langsam sein“. Der eigentliche Engpass liegt fast immer an einer unerwarteten Stelle. Zunächst wird also das Profil erstellt (Profiling – Messen, welcher Teil der Anwendung wie viel Zeit/Speicher/Akku verbraucht). Android Studio Profiler und Xcode Instruments sind für diesen Job geeignet. Die Weitergabe von Messdaten an die KI beschleunigt die Interpretation; Aber ohne Messung bedeutet es, blind Vorhersagen zu treffen, wenn man der KI sagt: „Meine Anwendung ist langsam, beschleunige sie.“

Die vier Hauptleistungsachsen sind:

Achse

Symptom

typische Ursache

Startzeit

Die Bewerbung wird spät geöffnet

Schwere Arbeit am Hauptthread

Geläufigkeit (jank)

Scroll bleibt hängen

Lange Verarbeitung, unnötiges Neuzeichnen im UI-Thread

Erinnerung

Schwellung, Kollaps

Leck, großes Bild, Cache unkontrolliert

Batterie/Wärme

schnelle Ejakulation

Kontinuierlicher Standort, Netzwerk, Sensor, Hintergrundjob

Tipp: Wenn Sie die KI nach einem Leistungsproblem fragen, geben Sie die Profilausgabe an (welche Funktion wie lange dauert, Speicherdiagramm). Harte Daten wie „Diese Funktion benötigt 30 ms pro Frame“ ermöglichen es der KI, sich auf den tatsächlichen Engpass zu konzentrieren; Eine subjektive Formulierung wie „langsam“ führt zu einer allgemeinen und nutzlosen Antwort.

Batteriekosten für KI-Fähigkeiten

Die KI-Funktionen, die wir in diesem Modul hinzugefügt haben, sind leistungsstark, aber nicht kostenlos. Das Extrahieren eines On-Device-Modells belastet den Prozessor und den Akku; Eine ständig laufende Bilderkennung (z. B. die Kamera verarbeitet jedes Bild) erhitzt das Telefon und entlädt den Akku innerhalb von Minuten. Cloud-KI-Anrufe hingegen verbrauchen den Akku, da das Netzwerkradio (die Antenne, die Daten sendet und empfängt) ständig eingeschaltet bleibt. Lösungen: Führen Sie das On-Device-Modell nur bei Bedarf aus, testen Sie die Kamera ein paar Mal pro Sekunde statt jedes Bild, senden Sie stapelweise Cloud-Anfragen, erledigen Sie die schwere Arbeit, während das Gerät aufgeladen wird oder im Leerlauf ist.

Achtung: Eine ständig laufende KI-Funktion (Live-Übersetzung, kontinuierliche Objekterkennung) kann den Akku sehr schnell entladen, das Gerät aufheizen und möglicherweise vom System gedrosselt werden. Eine Funktion, die dem Benutzer das Gefühl gibt, dass diese Kosten anfallen, wurde gelöscht. Ich frage AI immer: „Wie mache ich diese Funktion batteriefreundlich?“ Stellen Sie auch die Frage.

Optimierungsschritte

  1. Messen. Finden Sie mit Profiler den tatsächlichen Engpass. rate nicht.
  2. Wählen Sie das größte Problem. Streben Sie nicht nach einer Verbesserung um 1 %; Streben Sie die teuerste Transaktion an.
  3. Fragen Sie die KI nach Daten. Optimierungsvorschlag mit Profilausgabe + relevantem Code anfordern.
  4. Auftragen und erneut messen. Ist die Verbesserung real? Ist die Zahl gesunken?
  5. Regressionskontrolle. Hat die Optimierung etwas kaputt gemacht? Wiederholen Sie die Sicht- und Funktionsprüfung.

drei Mini-Koffer

Fall 1 – Suche am falschen Ort. Ein Team dachte, die Listen stecken fest und überarbeitete den Scrollcode wochenlang ohne Erfolg. Als sie den Profiler nahmen und die Daten an die KI weiterleiteten, stellte sich heraus, dass der eigentliche Engpass darin bestand, dass die Bilder mit jeder Zeile über das Netzwerk neu geladen wurden. Als der visuelle Cache hinzugefügt wurde, erhöhte sich die Sprachflüssigkeit von 42 FPS auf 60 FPS. Lektion: Messung vermeidet wochenlange vergebliche Anstrengungen.

Fall 2 – Batteriemonster-Funktion. Eine Übersetzungs-App fügte Live-Textübersetzung mit Kamera hinzu; Benutzer beschwerten sich darüber, dass „das Telefon innerhalb von 15 Minuten aufgeheizt war und 30 % des Akkus leer waren.“ Bei Rücksprache mit der KI wurde festgestellt, dass die Kamera 30 Bilder pro Sekunde verarbeitet; Als diese auf 5 Bilder reduziert wurde und das Ergebnis im Abstand von einigen Bildern aktualisiert wurde, sank der Batterieverbrauch auf ein Drittel und die Qualität war nicht spürbar. Lektion: Stellen Sie die KI immer mit dem Batterieauge ein.

Fall 3 – Langsamer Beginn. Eine App wurde in 4,5 Sekunden geöffnet; 20 % der Benutzer beendeten das Programm beim Start. Das Profil zeigte, dass alle anfänglichen Arbeiten (Analyse, Datenladen, Modellvorbereitung) nacheinander im Hauptthread durchgeführt wurden. Mit dem KI-Vorschlag wurden diese verschoben und in den Hintergrund gedrängt; Die Öffnungszeit wurde auf 1,3 Sekunden verkürzt und die Abbruchrate halbiert. Lektion: Erledigen Sie am Anfang nur die wesentlichen Arbeiten.

Schwache Eingabeaufforderung / Starke Eingabeaufforderung

Schwache Aufforderung: „Meine App ist langsam, beschleunigen Sie sie.“

Leistungsstarke Eingabeaufforderung: „Das Scrollen der Liste bleibt in meiner Android-Anwendung hängen (Ruckeln). Profiler-Daten: bindImageView benötigt 28 ms für jeden Frame, Bilder werden jedes Mal aus dem Netzwerk geladen, es gibt keinen Cache. Zugehöriger Code: [RecyclerView-Adaptercode]. Empfehlen Sie die 3 effektivsten Optimierungen in der Reihenfolge ihrer Auswirkung. Geben Sie für jede den erwarteten Gewinn und mögliche Nebenwirkungen an. Priorisieren Sie Lösungen, die die Bildqualität nicht beeinträchtigen.“

Kopierbare Vorlagen

Vorlage für die Engpassanalyse: „Interpretieren Sie die folgenden Profildaten und finden Sie die drei teuersten Vorgänge: [Profiler-Ausgabe]. Schlagen Sie für jeden eine mögliche Ursache und eine konkrete Optimierung vor. Geben Sie zuerst die größte Auswirkung an.“

Vorlage zur Batterieoptimierung: „Diese Funktion entlädt die Batterie schnell: [Funktion, z. B. permanenter Standort]. Machen Sie sie batteriefreundlich: – Reduzieren Sie die Abtasthäufigkeit – Einschränkung im Hintergrund – Stapelverarbeitung – Nur bei Bedarf ausführen. Lösungen sortieren, ohne die Benutzererfahrung zu beeinträchtigen. [Code]“

Vorlage zur Startbeschleunigung: „Beschleunigen Sie den Anwendungsstart. Dinge, die derzeit beim Start erledigt werden: [Liste]. Welche können verschoben, im Hintergrund oder verzögert geladen werden? Trennen Sie die wesentlichen davon. [Code]“

Kostenvorlage für KI-Funktionen: „Bewerten Sie die Leistung und die Batteriekosten der von mir hinzugefügten Funktion [Gerätemodell / Cloud-Anruf]. Listen Sie die Metriken auf, die ich messen sollte, und Strategien zur Kostenreduzierung. [Code]“

Häufige Fehler

  • Optimieren ohne zu messen. Der eigentliche Engpass liegt oft an einer anderen Stelle als vorhergesagt.
  • Auf der Jagd nach kleinen Gewinnen. Streben Sie die teuerste Maßnahme an und nicht die Verbesserung um 1 %.
  • Ignorieren Sie die Batteriekosten von KI-Funktionen. Ständig laufendes Modell/Kamera/Netzwerk frisst den Akku.
  • Ermüdet den Hauptthread. Das schwere Starten und Scrollen sollte nicht auf dem UI-Thread liegen.
  • Keine erneute Messung nach der Optimierung. Stellen Sie sicher, dass die Verbesserung real ist und nichts kaputt macht.
  • Messen der Leistung im Emulator. Die tatsächliche Geschwindigkeit, Temperatur und der Akku des Geräts unterscheiden sich völlig.

Zusammenfassend

Leistung und Akku sind eine Frage des Überlebens mobiler Apps. Die goldene Regel: Erst messen, dann optimieren. Die Weitergabe von Profildaten an die KI beschleunigt die Interpretation; Der unermessliche Wunsch nach „Beschleunigung“ führt zu blinden Vermutungen. Streben Sie die teuerste Transaktion an und jagen Sie nicht nach kleinen Gewinnen. Die in diesem Modul hinzugefügten KI-Funktionen sind leistungsstark, verursachen jedoch Batterie- und Prozessorkosten; Beherrschen Sie diese Kosten, indem Sie die Probenahmehäufigkeit reduzieren, die Proben stapeln und nur bei Bedarf ausführen. Nach jeder Optimierung erneut am realen Gerät messen.

Anwendungsaufgabe

Importieren Sie ein Profil in eine Anwendung (Ihr eigenes Projekt oder Beispiel) oder erstellen Sie eine Beispielprofilausgabe und lassen Sie diese von der KI mit der „Engpass-Analysevorlage“ interpretieren. Wenden Sie die höchste Wirkungsoptimierung an und messen Sie erneut: Ist die Zahl tatsächlich gesunken? Bewerten Sie außerdem eine KI-Funktion, die Sie in diesem Modul hinzugefügt haben (Modell auf dem Gerät oder Cloud-Aufruf), im Hinblick auf den Akku mit der „Kostenvorlage für KI-Funktion“ und ermitteln Sie mindestens eine batteriefreundliche Einstellung.

Checkliste

  • [ ] Ich habe vor der Optimierung ein Profil erstellt, ich habe es nicht erraten
  • [ ] Ich habe den teuersten Handel angestrebt und mich nicht auf kleine Gewinne gestreut
  • [ ] Ich habe die KI-Profildaten in konkreten Zahlen angegeben
  • [ ] Ich habe die Batterie-/Prozessorkosten der KI-Funktionen bewertet
  • [ ] Ich habe die schwere Arbeit aus dem Hauptthread entfernt
  • [ ] Nach der Optimierung habe ich noch einmal am realen Gerät gemessen und die Regression überprüft