Optimisation automatique guidée par les commentaires (12 ou version ultérieure)

Introduit dans Android 12, le système de compilation Android permet d'optimiser les modules Android natifs qui disposent de règles de compilation de modèle à l'aide de l'optimisation automatique orientée par les commentaires (AutoFDO). AutoFDO est une technique d'optimisation basée sur l'échantillonnage. AutoFDO capture le comportement d'exécution ce qui permet aux compilateurs d'optimiser les performances tout en en réduisant la taille binaire. Android permet de collecter des profils à partir d'appareils X86, X86_64, ARM et ARM64, bien que les profils puissent être utilisés sur différentes architectures.

AutoFDO est le successeur de l'optimisation guidée par profil basée sur l'instrumentation (PGO).

Par rapport à d'autres profils basés sur l'instrumentation, AutoFDO dispose de ces avantages:

  • Collecte de données discrète: les profils AutoFDO peuvent être collectés depuis de développement ou d'utilisateurs sans aucune modification des règles de compilation.

  • Représentation de l'utilisation réelle: AutoFDO reflète le comportement d'utilisation réelle en supposant que les profils sont collectés à partir des appareils des utilisateurs, tandis que l'instrumentation avec PGO ne représente que la charge de travail de collecte synthétique. Il n'est généralement pas simple de créer une charge de travail de collecte qui correspond parfaitement à l'utilisation réelle.

AOSP est fourni avec des profils AutoFDO pour la plupart des projets critiques. Les profils ont été collectés sur des téléphones et des tablettes, et sont représentatifs de leurs habitudes d'utilisation générales. Les profils se trouvent sous toolchain/pgo-profiles/sampling. AFDO est activé par défaut sur AOSP.

Activer AutoFDO pour une règle de compilation de modèle

Pour activer AutoFDO pour les règles de compilation du plan, ajoutez afdo: true au groupe ou une règle binaire.

Collecter des profils

Le profil préfabriqué fourni avec AOSP n'est pas compatible avec ces scénarios:

  • Inclusion de projets AutoFDO supplémentaires
  • Présence de code modifié en local
  • Modèles d'utilisation uniques associés à votre système

Si vous rencontrez l'un de ces scénarios, vous devez collecter des profils directement à partir des appareils de développement ou des appareils des utilisateurs.

Pour obtenir des instructions détaillées sur la préparation des appareils ARM à la collecte de profils AutoFDO, consultez la section Collecter des données ETM pour AutoFDO.

Pour en savoir plus sur l'activation de la collecte automatique des profils en arrière-plan, le traitement et l'importation, Profcollect

Analyser les profils AutoFDO

Android utilise des profils AutoFDO LLVM standards. Les profils AFDO peuvent être consultés à l'aide de l'outil llvm-profdata de LLVM. Script afdo_summary.sh (toolchain/pgo-profiles/scripts/afdo_summary.sh) génère automatiquement les fonctions les plus fréquemment exécutées en fonction Profil AutoFDO.