É possível coletar perfis usando dois métodos principais: coleta manual de perfis e a API ProfilingManager
.
- A coleta manual de perfis envolve executar o Perfetto manualmente no seu dispositivo local para gravar perfis. Você pode fazer isso usando comandos, conforme descrito em Gravar rastreamentos do sistema com o Perfetto ou usando o bloco "Configurações rápidas", conforme explicado em Gravar usando o bloco "Configurações rápidas".
- O
ProfilingManager
permite que os apps coletem perfis em produção.
Recomendamos usar ProfilingManager
para coletar e analisar dados de
muitos usuários ou para depurar problemas raros. No entanto, para problemas mais fáceis de
reproduzir, a criação de perfil manual pode ser uma opção melhor.
A tabela a seguir mostra como esses dois métodos para registrar perfis são diferentes:
ProfilingManager | Coleta manual de perfis | |
---|---|---|
Controle de tempo do perfil | Mais | Menos |
Origem do perfil | Dispositivo local e usuários públicos | Somente dispositivo local |
Saída do perfil | Encoberto | Sem edição |
Criação de perfis com base em eventos | Sim | Não |
Personalização do perfil | Menos | Mais |
Escalabilidade | Alta | Baixo |
As seções a seguir descrevem brevemente as diferenças entre os métodos de gravação de perfil.
Controle de tempo do perfil
A API ProfilingManager
oferece mais controle sobre quando um app inicia ou
interrompe um perfil em comparação com a criação de perfil manual, em que a inicialização
do perfil de tempo pode ser difícil. O ProfilingManager
também facilita a criação de perfis de comportamentos inesperados, porque é possível coletar um perfil mesmo que não seja possível reproduzir o comportamento localmente.
Origem do perfil
Com o ProfilingManager
, é possível coletar dados de usuários públicos para encontrar e corrigir
problemas de performance. Em contraste, o perfil manual só permite reproduzir problemas
no seu próprio dispositivo.
Saída do perfil
A coleta manual e o ProfilingManager
produzem diferentes tipos de saída de perfil:
ProfilingManager
produz traces redigidos. Os rastreamentos editados mostram informações sobre o processo do app, mas ocultam dados de outros apps no sistema. Como oProfilingManager
coleta e edita antes de retornar os dados, é possível coletar rastreamentos de usuários públicos e proteger a privacidade deles sem mostrar dados de outros apps.A coleta manual de perfis produz rastreamentos não editados. Quando você grava um rastreamento do sistema manualmente, a saída pode incluir todos os processos em execução no sistema. Embora esses rastreamentos não editados ofereçam dados mais completos para depuração, só é possível acessá-los localmente devido a questões de privacidade.
Criação de perfis baseada em eventos
O ProfilingManager
também pode coletar perfis quando eventos específicos acontecem, como
um erro "O app não está respondendo" (ANR) ou a inicialização do app. ProfilingManager
vai processar o início e a interrupção dos perfis para a coleta baseada em eventos.
Personalização do perfil
A criação de perfil manual oferece mais personalização, enquanto o ProfilingManager
tem menos opções.
Escalabilidade
ProfilingManager
é a melhor maneira de escalonar o rastreamento porque é a única opção
que permite aos desenvolvedores de apps gravar perfis de usuários públicos. Com o
ProfilingManager
, é possível configurar a coleta e a análise de rastreamentos em grande escala.
A criação de perfis manual é limitada ao uso local.