Simpleperf

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:

  1. Abra seu projeto Android no Unity Editor.
  2. Na janela Build Settings da plataforma Android, verifique se a opção Development Build está marcada.
  3. Clique em Player Settings e defina a propriedade Stripping Level como Disabled.