Automatische Feedback-gesteuerte Optimierung (12 oder höher)

Das in Android 12 eingeführte Android-Build-System unterstützt die Optimierung nativer Android-Module mit Blueprint-Build-Regeln mithilfe der automatischen Feedback-gesteuerten Optimierung (AutoFDO) . AutoFDO ist eine stichprobenbasierte Optimierungstechnik. AutoFDO erfasst das Laufzeitverhalten von Systembinärdateien und ermöglicht Compilern so bessere Leistungsoptimierungen bei gleichzeitiger Reduzierung der Binärgröße. AutoFDO unterstützt das Sammeln von Daten von AArch32- und AArch64-Architekturen, obwohl die Profile architekturübergreifend verwendet werden können.

AutoFDO ist der Nachfolger der instrumentierungsbasierten Profile-Guided Optimization (PGO).

Im Vergleich zu anderen instrumentenbasierten Profilen bietet AutoFDO folgende zusätzliche Vorteile:

  • Unauffällige Datenerfassung: AutoFDO-Profile können von Entwicklungs- oder Benutzergeräten erfasst werden, ohne dass Änderungen an den Build-Regeln erforderlich sind.

  • Darstellung der realen Nutzung: AutoFDO stellt das reale Nutzungsverhalten dar, vorausgesetzt, Profile werden von Benutzergeräten erfasst, während Instrumentierungs-PGO nur für die Arbeitslast der synthetischen Erfassung repräsentativ ist. Im Allgemeinen ist es nicht einfach, eine Sammlungsarbeitslast zu erstellen, die perfekt zur realen Nutzung passt.

AOSP wird mit AutoFDO-Profilen für die meisten leistungskritischen Projekte ausgeliefert. Die Profile wurden von Telefonen und Tablets erfasst und sind repräsentativ für deren allgemeine Nutzungsmuster. Die Profile befinden sich unter toolchain/pgo-profiles/sampling . AFDO ist auf AOSP standardmäßig aktiviert.

Aktivieren Sie AutoFDO für eine Blueprint-Build-Regel

Um AutoFDO für Blueprint-Build-Regeln zu aktivieren, hängen Sie afdo: true an die gemeinsam genutzte Bibliothek oder Binärregel an.

Sammeln Sie Profile

Das mit AOSP bereitgestellte vorgefertigte Profil unterstützt diese spezifischen Szenarios nicht:

  • Die Aufnahme weiterer AutoFDO-Projekte
  • Das Vorhandensein von lokal geändertem Code
  • Einzigartige Nutzungsmuster, die Ihrem System zugeordnet sind

Wenn Sie eines dieser Szenarios haben, müssen Sie Profile direkt von Entwicklungs- oder Benutzergeräten erfassen.

Ausführliche Anweisungen zum Vorbereiten von ARM-Geräten für das Sammeln von AutoFDO-Profilen finden Sie unter Sammeln von ETM-Daten für AutoFDO .

Informationen zum Aktivieren der automatischen Hintergrundprofilerfassung, -verarbeitung und -hochladung finden Sie unter Profcollect .

Analysieren Sie AutoFDO-Profile

Android verwendet Standard-LLVM-AutoFDO-Profile. Die AFDO-Profile können mit dem llvm-profdata Tool des LLVM gelesen werden. Das Skript afdo_summary.sh ( toolchain/pgo-profiles/scripts/afdo_summary.sh ) generiert automatisch die am häufigsten ausgeführten Funktionen gemäß dem AutoFDO-Profil.