Simpleperf

Android Studio incluye una interfaz gráfica para Simpleperf, que se documenta en Cómo inspeccionar la actividad de la CPU con el Generador de perfiles de CPU. La mayoría de los usuarios preferirán usarla en lugar de usar directamente 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 incursionas 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). Es un buen comando para ejecutar primero cuando inicias tu sesión de análisis de rendimiento.

$ simpleperf report --sort dso

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

Cuando 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 dedicado a cada subproceso.

$ simpleperf report --sort tid,comm

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

Después de encontrar 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 brinda una representación visual de un seguimiento de pila que Simpleperf registra 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. 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 muestre 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 según estos pasos:

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