Simpleperf

Android Studio incluye una interfaz gráfica para Simpleperf, que se documenta en Cómo inspeccionar la actividad de la CPU con CPU Profiler. La mayoría de los usuarios directamente preferirán usarla en lugar de Simpleperf.

Si prefieres usar la línea de comandos, Simpleperf es una herramienta de generación de perfiles de CPU versátil con línea de comandos, que se incluye en el NDK para Mac, Linux y Windows.

Para obtener la documentación completa, comienza por consultar el archivo README de Simpleperf.

Sugerencias y recetas de Simpleperf

Si recién estás incursionando en Simpleperf, estos son algunos comandos que te pueden resultar particularmente útiles. Para ver más comandos y opciones, consulta Referencia de comandos de Simpleperf.

Cómo ver qué bibliotecas compartidas tardan más en ejecutarse

Puedes ejecutar este comando para ver qué archivos .so ocupan el mayor porcentaje de tiempo de ejecución (en función de la cantidad de ciclos de CPU). Este es un buen comando para ejecutarlo primero al iniciar tu sesión de análisis de rendimiento.

    $ simpleperf report --sort dso
    

Cómo ver qué funciones tardan más en ejecutarse

Una vez que hayas identificado las bibliotecas compartidas que más tardan en ejecutarse, puedes ejecutar este comando para ver el porcentaje de tiempo dedicado a ejecutar las funciones de ese archivo .so.

    $ simpleperf report --dsos library.so --sort symbol
    

Cómo averiguar el porcentaje de tiempo invertido en subprocesos

El tiempo de ejecución en un archivo .so se puede dividir en varios subprocesos. Puedes ejecutar este comando para ver el porcentaje de tiempo invertido en cada subproceso.

    $ simpleperf report --sort tid,comm
    

Cómo ver el porcentaje de tiempo invertido en módulos de objetos

Una vez que se encontraron los subprocesos en los que se invierte la mayor parte del tiempo de ejecución, puedes usar este comando para aislar los módulos de objetos que más tiempo de ejecución insumen dentro de esos subprocesos.

    $ simpleperf report --tids threadID --sort dso
    

Descubre cómo se relacionan las llamadas a funciones

Un gráfico de llamadas proporciona una representación visual de un seguimiento de pila que registra Simpleperf durante la sesión de generación de perfiles. Antes de comenzar a registrar información del gráfico de llamadas, consulta Consideraciones sobre los registros.

Puedes usar el comando report -g para imprimir un gráfico de llamadas y ver las funciones que llaman otras funciones. Esto es útil para determinar si una función es lenta por sí misma o si se debe a que una o más de las funciones que llama son lentas.

    $ simpleperf report -g
    

También puedes usar la secuencia de comandos Python report.py -g para iniciar una herramienta interactiva que muestra funciones. Puedes hacer clic en cada función para ver cuánto tiempo invierte en sus elementos secundarios.

Cómo generar perfiles de apps compiladas con Unity

Si quieres generar el perfil de una app compilada con Unity, asegúrate de compilarla con símbolos de depuración. Para ello, sigue estos pasos:

  1. Abre tu proyecto de Android en el editor de Unity.
  2. En la ventana Build Settings correspondiente a la plataforma Android, asegúrate de que esté marcada la opción Development Build.
  3. Haz clic en Player Settings y configura la propiedad Stripping Level como Disabled.