Com o Android GPU Inspector (AGI), é possível realizar a criação de perfil do sistema que inclui uma ampla variedade de opções de rastreamento e medições de desempenho da GPU para seu app Android. Em comparação com as ferramentas de criação de perfil do Android Studio, o AGI combina muitos desses recursos em uma única ferramenta e oferece cobertura e análise de GPU mais detalhadas. Os dados de criação de perfil do sistema disponíveis incluem:
- Dados de rastreamento de apps, incluindo marcadores ATrace
- CPU e dados de programação de processos
- Informações de desempenho da GPU, como dados de contador, atividade e ciclo de vida
- Dados de rastreamento para chamadas da API Vulkan
- Estatísticas de uso da memória
- Estatísticas de uso da bateria
O System Profiler é o componente AGI que gerencia a interface e a instrumentação para a criação de perfil do sistema em vários frames do app. Ele é criado com base no sistema de rastreamento Perfetto (link em inglês). Para saber mais sobre o componente AGI para criar perfis de frames de app individuais, consulte a visão geral do Frame Profiler.
Primeiros passos
O guia de início rápido do AGI descreve como configurar o AGI, capturar um perfil do sistema e abrir o arquivo de rastreamento resultante. A próxima seção descreve as opções de configuração em mais detalhes.
Opções de criação de perfil
Esta seção descreve as principais opções disponíveis quando você cria um perfil de um app.
Configurações do app
As configurações do Aplicativo identificam o app Android a ser executado e rastreado durante a criação de perfil do sistema. A seleção de um app Android para rastrear durante a criação de perfil do sistema é opcional, mas recomendado porque, sem isso, o arquivo de rastreamento resultante não incluirá marcadores ATrace e atividades de GPU para um aplicativo.
Opções de rastreamento
As Opções de rastreamento especificam os dados de criação de perfil a serem coletados. O botão Configurar mostra as fontes de dados disponíveis.
Para minimizar o impacto no desempenho do dispositivo Android ao criar o perfil do sistema, recomendamos que você selecione menos fontes de dados se definir a Duração do trace para mais de um minuto. No entanto, para traces em menos de um minuto, é possível selecionar todas as fontes de dados com impacto mínimo.
Opções de CPU
A opção CPU permite a coleta de dados de programação de processos e CPUs com o ftrace. Isso permite que você veja qual processo e linha de execução estão em execução em cada núcleo da CPU. Também é possível ativar as seguintes opções:
- Estados de frequência e inatividade: coleta a frequência de núcleo da CPU e eventos de mudança de estado inativo, o que permite inspecionar como a CPU é escalonada para mais ou para menos com base na carga.
- Programação de cadeias / latência: coleta outros dados de estado da linha de execução sobre atrasos e preempção de programação de linhas de execução.
- Fatias de linha de execução: coleta marcadores ATrace nas visualizações do processo.
Opções de GPU
As opções de GPU permitem a criação de perfil do uso de GPU do app, como a coleta de dados de uso de frequência e memória da GPU. Para coletar esses dados, especifique um aplicativo para rastrear nas configurações do Aplicativo. As opções incluem o seguinte:
Contadores: coleta amostras de contador da GPU. Esses dados são usados para determinar o nível de ocupação da GPU e localizar gargalos. Por isso, recomendamos que você defina essas configurações.
Os contadores são específicos do hardware. Por exemplo, a frequência mínima para a coleta de amostras (Taxa de enquete) pode ser diferente com base no tipo de contador. Para informações sobre contadores compatíveis, consulte Contadores de desempenho da GPU.
Frame Lifecycle: rastreia eventos SufaceFlinger, que ajudam a determinar como os buffers de frame se movem pelo aplicativo, pelo compositor e pelo gerenciador de janelas. Esses eventos permitem localizar frames de apps perdidos e identificar fontes de latência no pipeline de renderização.
Frações do estágio de renderização: coleta dados que ajudam a determinar como o aplicativo está usando a GPU.
Opções do Vulkan
As opções Vulkan permitem o rastreamento de chamadas da API Vulkan, que podem ser ativadas por tipo de função. Você pode usar esses dados para determinar a sobrecarga de CPU das chamadas da API Vulkan. O rastro registra a duração de cada chamada de função, que é exibida nas frações de linha de execução do app quando você analisa os dados na faixa de eventos Vulkan.
Outras opções
As opções adicionais de criação de perfil do sistema incluem:
Memória: colete estatísticas essenciais de uso de memória, globalmente e para cada processo.
Bateria: coleta estatísticas da bateria. Isso pode dar uma estimativa aproximada do uso de energia do aplicativo.
Forçar o rastreamento em um arquivo no dispositivo: os dados de rastreamento normalmente são transmitidos por USB enquanto o rastro está sendo capturado, o que tem a menor quantidade de sobrecarga e permite rastros longos. No entanto, se você encontrar problemas ou queda de dados de criação de perfil devido à latência USB, selecione essa opção para salvar o arquivo de rastreamento no dispositivo, que o AGI faz o download após a conclusão do rastreamento. Isso exige espaço suficiente no armazenamento interno do dispositivo para armazenar o arquivo de rastreamento.
Modo avançado
O link Alternar para o modo avançado inicia o modo de configuração avançada, que permite editar manualmente a configuração de rastros do Pefetto que armazena suas opções de criação de perfil.
Visualizar e analisar os resultados
Quando você abre um arquivo de rastreamento que contém dados de criação de perfil do sistema, o AGI mostra os dados na IU do System Profiler para análise. Saiba mais sobre como ver os dados em Ver um perfil do sistema.
Estes tópicos descrevem como analisar dados de criação de perfil do sistema com o AGI:
- Analisar os tempos de processamento de frames
- Analisar a eficiência da memória
- Analisar o uso de largura de banda da memória de textura
- Analisar o uso de largura de banda de memória do vértice
- Analisar a programação de linhas de execução