Das Android-Buildsystem, das in Android 12 eingeführt wurde, unterstützt die Optimierung nativer Android-Module mit Blueprint-Build-Regeln mithilfe der automatischen feedbackbasierten Optimierung (AutoFDO). AutoFDO ist eine stichprobenbasierte Optimierungstechnik. AutoFDO erfasst das Laufzeitverhalten des Systems Binärdateien, sodass Compiler bessere Leistungsoptimierungen vornehmen und gleichzeitig die binäre Größe reduzieren. Android unterstützt das Erfassen von Profilen von X86-, X86_64-, ARM- und ARM64-Geräten. Die Profile können jedoch architekturübergreifend verwendet werden.
AutoFDO ist der Nachfolger der instrumentierungsbasierten profilgestützten Optimierung (PGO).
Im Vergleich zu anderen instrumentierungsbasierten Profilen weist AutoFDO diese zusätzlichen Vorteile:
Unaufdringliche Datenerfassung: AutoFDO-Profile können von Entwickler- oder Nutzergeräte ohne Änderungen an Regeln zu erstellen.
Darstellung der tatsächlichen Nutzung: AutoFDO stellt ein reales Nutzungsverhalten dar. Unter der Annahme, dass Profile von Nutzergeräten erfasst werden, während PGO für die Instrumentierung ist nur für die Arbeitslast der synthetischen Sammlung repräsentativ. Es ist nicht ist es im Allgemeinen einfach, eine Sammlungsarbeitslast zu erstellen, mit der tatsächlichen Nutzung übereinstimmt.
Im Lieferumfang von AOSP sind AutoFDO-Profile für die meisten leistungskritischen Projekte enthalten. Die
Die Profile wurden von Telefon- und Tablet-Geräten erfasst und sind repräsentativ für
ihre allgemeinen Nutzungsmuster. Die Profile befinden sich unter toolchain/pgo-profiles/sampling
. AFDO ist bei AOSP standardmäßig aktiviert.
AutoFDO für eine Build-Regel für den Blueprint aktivieren
Wenn Sie AutoFDO für Build-Regeln für Blueprints aktivieren möchten, hängen Sie afdo: true
an die freigegebene Bibliothek oder Binärregel an.
Profile erfassen
Das mit AOSP bereitgestellte vorkonfigurierte Profil unterstützt diese speziellen Szenarien nicht:
- Aufnahme weiterer AutoFDO-Projekte
- Das Vorhandensein von lokal geändertem Code
- Einzigartige Nutzungsmuster, die mit Ihrem System verknüpft sind
Wenn eines dieser Szenarien auf Sie zutrifft, müssen Sie Profile direkt in der Entwicklungs- oder Nutzergeräte.
Eine ausführliche Anleitung zum Vorbereiten von ARM-Geräten für die Erhebung von AutoFDO-Profilen finden Sie unter ETM-Daten für AutoFDO erheben.
Informationen zum Aktivieren der automatischen Erfassung von Hintergrundprofilen der Verarbeitung und des Hochladens Profcollect
AutoFDO-Profile analysieren
Android verwendet standardmäßige LLVM AutoFDO-Profile. Die AFDO-Profile können mit dem llvm-profdata
-Tool von LLVM gelesen werden. Das Skript afdo_summary.sh
(toolchain/pgo-profiles/scripts/afdo_summary.sh
)
generiert automatisch die am häufigsten ausgeführten Funktionen anhand der
AutoFDO-Profil.