Ottimizzazione automatica in base al feedback (12 o versioni successive)

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.