Otimização automática direcionada por feedback (12 ou mais recente)

Introduzido no Android 12, o sistema de build do Android oferece suporte à otimização de anúncios Módulos Android que têm regras de build de blueprint usando o Modo automático Otimização Direcionada por Feedback (AutoFDO). A AutoFDO é uma técnica de otimização baseada em amostragem. O AutoFDO captura o comportamento do tempo de execução do sistema binários, permitindo que os compiladores façam otimizações de desempenho melhores e, ao mesmo tempo, reduzindo o tamanho do binário. O Android é compatível com a coleta de perfis de X86, X86_64, ARM e dispositivos ARM64, embora os perfis possam ser usados em várias arquiteturas.

A AutoFDO é a sucessora da otimização guiada por perfil (PGO) baseada em instrumentação.

Em comparação com outros perfis baseados em instrumentação, o AutoFDO tem estes benefícios adicionais:

  • Coleta de dados discreta: os perfis AutoFDO podem ser coletados de ou dispositivos do usuário sem qualquer modificação para criar regras.

  • Representação de uso real: o AutoFDO representa o comportamento de uso no mundo real. supondo que os perfis sejam coletados dos dispositivos dos usuários, enquanto a PGO de instrumentação representa apenas a carga de trabalho de coleta sintética. Não é a criação de uma carga de trabalho de coleta perfeitamente corresponde ao uso no mundo real.

O AOSP é enviado com perfis AutoFDO para a maioria dos projetos críticos para o desempenho. O de perfis foram coletados a partir de telefones e tablets e representam os padrões gerais de uso. Os perfis estão localizados em toolchain/pgo-profiles/sampling. O AFDO é ativado por padrão no AOSP.

Ativar AutoFDO para uma regra de criação de blueprint

Para ativar o AutoFDO para regras de build de modelo, anexe afdo: true à regra binária ou biblioteca compartilhada.

Coletar perfis

O perfil pré-empacotado fornecido com o AOSP não oferece suporte a esses cenários específicos:

  • A inclusão de outros projetos da AutoFDO
  • Presença de código modificado localmente
  • Padrões de uso exclusivos associados ao seu sistema

No caso de um desses cenários, é necessário coletar perfis diretamente dispositivos de usuário ou de desenvolvimento.

Para instruções detalhadas sobre como preparar dispositivos ARM para coletar perfis do AutoFDO, consulte Coletar dados de ETM para AutoFDO.

Para saber como ativar a coleta, o processamento e o upload automáticos de perfis em segundo plano, consulte Profcollect.

Analisar perfis de AutoFDO

O Android usa perfis padrão do LLVM AutoFDO. Os perfis AFDO podem ser lidos usando a ferramenta llvm-profdata do LLVM. O script afdo_summary.sh (toolchain/pgo-profiles/scripts/afdo_summary.sh) gera automaticamente as funções executadas com mais frequência de acordo com o perfil AutoFDO.