Von ChinaMobileMag auf Donnerstag, 12. März 2026
Kategorie: News

Google bringt AutoFDO in den Android-Kernel

Googles Android LLVM Toolchain Team hat damit begonnen, eine Optimierungstechnik namens "Automatic Feedback-Directed Optimization", kurz AutoFDO, in den Android-Kernel zu integrieren. Ziel ist es, die Laufzeiteffizienz des Systems zu verbessern, ohne dabei an der Hardware etwas zu verändern. Konkret sollen Kaltstart-Zeiten von Apps, der Systemstart sowie die allgemeine Flüssigkeit der Oberfläche profitieren.

Was AutoFDO macht und warum es relevant ist

Wenn ein Compiler Software übersetzt, trifft er tausende kleine Entscheidungen: Welche Funktionen werden inline erweitert? Welcher Zweig einer Bedingung wird häufiger genommen? Bisher basierten diese Entscheidungen auf statischen Heuristiken, also auf Annahmen, die nicht zwingend dem tatsächlichen Nutzungsverhalten entsprechen.

AutoFDO ersetzt diese Annahmen durch echte Ausführungsdaten. Das System zeichnet auf, welche Codepfade der Kernel beim realen Betrieb tatsächlich am häufigsten durchläuft, und gibt diese Information beim nächsten Build an den Compiler weiter. Dieser kann die sogenannten "heißen" Codepfade, also jene Teile des Kernels, die unter Last besonders häufig ausgeführt werden, gezielt bevorzugen und effizienter anordnen.

Das ist kein neues Konzept: Ähnliche Ansätze wie Profile Guided Optimization (PGO) sind bereits in Windows, Linux und Google's eigener Chromium-Infrastruktur im Einsatz. AutoFDO wurde außerdem bereits seit Android 12 für native Bibliotheken und ausführbare Dateien im Userspace genutzt, mit messbaren Ergebnissen. Neu ist nun die Anwendung auf den Kernel selbst, was angesichts seiner zentralen Rolle im System besondere Bedeutung hat: Laut Google entfallen auf Android rund 40 Prozent der gesamten CPU-Rechenzeit auf den Kernel.

​{eblogads}

Profilgewinnung im Labor

Für den Userspace sammelt Google Profildaten direkt von internen Geräteflotten. Beim Kernel geht das Team einen anderen Weg: Die Profile werden in einer kontrollierten Laborumgebung auf Pixel-Geräten erzeugt, auf denen ein repräsentativer Workload ausgeführt wird. Dieser umfasst die 100 beliebtesten Apps aus dem Play Store, wobei sowohl App-Starts als auch längere, KI-gestützte App-Interaktionen sowie Hintergrundprozesse berücksichtigt werden.

Zur Datenerfassung kommt das Profiling-Werkzeug "simpleperf" zum Einsatz, das auf ARM-Hardwarefähigkeiten wie der Embedded Trace Extension (ETE) und der Trace Buffer Extension (TRBE) aufbaut, um den Verzweigungsverlauf des Prozessors aufzuzeichnen. Laut Google stimmen die so gewonnenen Profile zu 85 Prozent mit den Daten überein, die von der internen Geräteflotte unter echten Nutzungsbedingungen gesammelt werden. Der Vorteil dieses Ansatzes: Die Profilaktualisierung ist vom Geräte-Release-Zyklus entkoppelt.

Die bislang erzielten Ergebnisse, gemessen auf Pixel-Geräten mit den Kernel-Versionen 6.1, 6.6 und 6.12, sind konkret: Der Systemstart beschleunigt sich um rund 2,1 Prozent, der Kaltstart von Apps um etwa 4,1 Prozent. Bereits im Userspace hatte AutoFDO einen Rückgang der Kaltstart-Zeiten um 4 Prozent und eine Verkürzung des Systemstarts um 1 Prozent gebracht. Über alle Kernel-Versionen hinweg berichtet Google von einem geometrischen Mittel der Leistungsverbesserung von 10,5 Prozent.

Diese Zahlen klingen auf den ersten Blick überschaubar, ihre Wirkung ist aber systemweit spürbar: Schnellere App-Wechsel, eine reaktionsfreudigere Oberfläche und potenziell längere Akkulaufzeit, weil der Prozessor weniger Zyklen für identische Aufgaben benötigt.

Stabilität und Zuverlässigkeit

Eine naheliegende Frage bei Compiler-Optimierungen ist, ob sie die Stabilität des Systems gefährden. Google begegnet dieser Sorge mit einer "konservativ by default"-Strategie: Codepfade, die nicht in den Hochfrequenzprofilen erfasst sind, werden mit Standardmethoden optimiert. Das Verhalten selten genutzter Kernel-Bereiche bleibt damit identisch mit dem eines normalen Builds. AutoFDO verändert keine Programmlogik, sondern beeinflusst lediglich, wie der Compiler den Code anordnet und priorisiert.

Bevor neue Profile in einen Build einfließen, durchlaufen sie zudem eine mehrstufige Verifikation: Inhalt und Größe werden mit früheren Versionen verglichen, Binaries auf unerwartete Änderungen geprüft und Leistungs-Benchmarks ausgeführt, um sicherzustellen, dass die erzielten Verbesserungen stabil bleiben.

Aktuell wird AutoFDO in den Kernel-Branches android16-6.12 und android15-6.6 implementiert. Die Unterstützung soll künftig auf neuere GKI-Versionen wie android17-6.18 ausgeweitet werden. Darüber hinaus plant Google, AutoFDO auch auf GKI-Module sowie auf Hersteller-spezifische Treiber anzuwenden, die über das Driver Development Kit (DDK) gebaut werden. Notwendige Infrastruktur im Build-System Kleaf und in simpleperf ist bereits vorhanden.

Da die Kernel-Profile kontinuierlich aktualisiert werden und jeder GKI-Release die jeweils aktuellen Profile mitbringt, profitieren Nutzer automatisch von den Verbesserungen, ohne selbst etwas tun zu müssen. Pixel-Geräte erhalten diese Optimierungen naturgemäß zuerst; andere Hersteller folgen, sobald sie die aktualisierten Kernel-Branches übernehmen.

Quelle(n): Android Developer Blog

Kommentare hinterlassen