O Android Studio inclui um front-end gráfico para o Simpleperf, documentado em Inspecionar a atividade da CPU com o CPU Profiler. A maioria dos usuários prefere usar isso em vez de usar diretamente o Simpleperf.
Caso você prefira usar a linha de comando, o Simpleperf é uma ferramenta versátil de caracterização de perfil da CPU, incluída no NDK para Mac, Linux e Windows.
Para a documentação completa, comece com o README do Simpleperf (link em inglês).
Dicas e instruções simples para o Simpleperf
Se você está apenas começando com o Simpleperf, veja alguns comandos que podem ser particularmente úteis. Para ver mais comandos e opções, consulte a Referência de opções e comandos do Simpleperf.
Descobrir quais bibliotecas compartilhadas demoram mais para ser executadas
Você pode executar esse comando para ver quais arquivos .so
ocupam a maior porcentagem de tempo de execução, com base no número de ciclos da CPU. Este é um bom primeiro comando a ser executado ao iniciar a sessão de análise de desempenho.
$ simpleperf report --sort dso
Encontrar quais funções demoram mais para ser executadas
Depois de identificar qual biblioteca compartilhada envolve mais tempo de execução, com esse comando você pode ver a porcentagem de tempo gasto na execução das funções do arquivo .so
.
$ simpleperf report --dsos library.so --sort symbol
Encontrar porcentagem de tempo gasto em linha de execução
O tempo de execução em um arquivo .so
pode ser dividido em várias linhas de execução. Você pode executar este comando para ver a porcentagem de tempo gasto em cada uma.
$ simpleperf report --sort tid,comm
Encontrar a porcentagem de tempo gasto nos módulos de objeto
Depois de encontrar as linhas de execução em que a maior parte do tempo é gasta, use este comando para isolar os módulos de objeto que levam o tempo mais longo.
$ simpleperf report --tids threadID --sort dso
Veja como as chamadas de função estão relacionadas
Um gráfico de chamadas fornece uma representação visual de um stack trace que o Simpleperf registra durante a sessão de caracterização de perfil.
Você pode usar o comando report -g
para imprimir um gráfico de chamadas para ver quais
funções são chamadas por outras. Isso é útil para determinar se uma função é lenta por si só ou se é porque uma ou mais das funções que ela chama são lentas.
$ simpleperf report -g
Você também pode usar o script Python report.py -g
para iniciar uma ferramenta interativa que mostra
funções. Clique em cada função para saber quanto tempo é gasto nos filhos delas.
Caracterização de perfil de apps criados com o Unity
Ao caracterizar o perfil de um app criado com o Unity, é necessário criar o app com símbolos de depuração seguindo estas etapas:
- Abra seu projeto Android no Unity Editor.
- Na janela Build Settings da plataforma Android, verifique se a opção Development Build está marcada.
- Clique em Player Settings e defina a propriedade Stripping Level como Disabled.