Introdotto in Android 12, il sistema di build Android supporta l'ottimizzazione degli annunci nativi Moduli Android che hanno regole di creazione del progetto che utilizzano l'opzione Automatico Ottimizzazione orientata al feedback (AutoFDO). AutoFDO è un modello di attribuzione basato su campionamento tecnica di ottimizzazione. AutoFDO acquisisce il comportamento di runtime dei file binari di sistema, consentendo ai compilatori di ottimizzare meglio le prestazioni e di ridurre al contempo le dimensioni dei file binari. Android supporta la raccolta di profili da X86, X86_64, Dispositivi ARM e ARM64, sebbene i profili possano essere utilizzati in più architetture.
AutoFDO è il successore dell'ottimizzazione guidata dal profilo (PGO) basata su strumenti.
Rispetto ad altri profili basati su strumenti, AutoFDO offre i seguenti vantaggi aggiuntivi:
Raccolta di dati non invadente: i profili AutoFDO possono essere raccolti da di sviluppo o dei dispositivi degli utenti senza modificare le regole di creazione.
Rappresentazione dell'utilizzo reale: AutoFDO rappresenta il comportamento di utilizzo nel mondo reale supponendo che i profili vengano raccolti dai dispositivi degli utenti, mentre il PGO di strumentazione è rappresentativo solo del carico di lavoro della raccolta sintetica. Non è è generalmente facile creare un carico di lavoro di raccolta che che corrispondono all'uso reale.
AOSP viene fornito con profili AutoFDO per la maggior parte dei progetti critici per le prestazioni. I
profili sono stati raccolti da smartphone e tablet e sono rappresentativi
delle relative modalità di utilizzo generali. I profili si trovano in
toolchain/pgo-profiles/sampling
. AFDO è attivo per impostazione predefinita su AOSP.
Attivare AutoFDO per una regola di compilazione del blueprint
Per abilitare AutoFDO per le regole di build del progetto, aggiungi afdo: true
alla
libreria o una regola binaria.
Raccogliere i profili
Il profilo pre-in bundle fornito con AOSP non supporta queste specifiche scenari aggiuntivi:
- L'inclusione di altri progetti AutoFDO
- La presenza di codice modificato localmente
- Modelli di utilizzo unici associati al tuo sistema
Se ti trovi in uno di questi scenari, devi raccogliere i profili direttamente da di sviluppo o degli utenti.
Per istruzioni dettagliate su come preparare i dispositivi ARM per raccolta di profili AutoFDO, consulta Raccogliere dati ETM per AutoFDO.
Per informazioni su come attivare la raccolta, l'elaborazione e il caricamento automatici dei profili in background, consulta Profcollect.
Analizza i profili AutoFDO
Android utilizza profili LLVM AutoFDO standard. I profili AFDO possono essere letti
utilizzando lo strumento llvm-profdata
di LLVM. Lo script afdo_summary.sh
(toolchain/pgo-profiles/scripts/afdo_summary.sh
)
genera automaticamente le funzioni eseguite più di frequente in base al
profilo AutoFDO.