Automatische Optimierung auf Grundlage von Feedback (12 oder höher)

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.