É possível coletar perfis usando dois métodos principais: a coleta manual de perfis e a API ProfilingManager.
- A coleta manual de perfis envolve a execução manual do Perfetto no dispositivo local para gravar perfis. Isso pode ser feito usando comandos, conforme descrito em Gravar rastreamentos do sistema com o Perfetto ou usando o bloco de Configurações Rápidas , conforme explicado em Gravar usando o bloco de Configurações Rápidas.
- O
ProfilingManagerpermite que os apps coletem perfis em produção.
Recomendamos o uso do 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 perfis manual pode ser uma opção melhor.
A tabela a seguir mostra como esses dois métodos de gravação de 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 | Não encoberto |
| Criação de perfis com base em eventos | Sim | Não |
| Personalização do perfil | Menos | Mais |
| Escalonabilidade | Alta | Baixa |
As seções a seguir descrevem brevemente as diferenças entre os métodos de gravação de perfis.
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 perfis 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 comportamento inesperado, 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, a criação de perfis manual só permite reproduzir problemas no seu próprio dispositivo.
Saída do perfil
O ProfilingManager e a coleta manual produzem diferentes tipos de saídas de perfil:
O
ProfilingManagerproduz rastros encobertos. Os rastros encobertos mostram informações sobre o processo do app, mas ocultam dados de outros apps no sistema. Como oProfilingManagercoleta e encobre antes de retornar, é possível coletar rastros de usuários públicos, protegendo a privacidade deles ao não mostrar dados de outros apps.A coleta manual de perfis produz rastros não encobertos. Ao gravar manualmente um rastro do sistema, a saída pode incluir todos os processos em execução no sistema. Embora esses rastros não encobertos ofereçam dados mais completos para depuração, só é possível acessá-los localmente devido a questões de privacidade.
Criação de perfis com base em eventos
O ProfilingManager também pode coletar perfis quando eventos específicos acontecem, como um erro de "O app não está respondendo" (ANR) ou a inicialização do app. O ProfilingManager vai processar o início e a interrupção de perfis para coleta com base em eventos.
Personalização do perfil
A criação de perfis manual oferece a maior personalização, enquanto o ProfilingManager oferece menos opções de personalização.
Escalonabilidade
O ProfilingManager é a melhor maneira de escalonar o rastreamento, porque é a única opção que permite que os desenvolvedores de apps gravem perfis de usuários públicos. Com o ProfilingManager, é possível configurar a coleta e a análise de rastros em grande escala.
A criação de perfis manual é limitada ao uso local.