Cómo navegar por un informe de Systrace

En esta guía, se explica cómo navegar por un informe de Systrace e interpretarlo. Para interpretar un informe de Perfetto, consulta la documentación del Procesador de seguimiento.

Elementos de un informe típico

Systrace genera un archivo HTML de resultados que incluye una serie de secciones. En el informe, hay una lista de los subprocesos de cada proceso. Si un subproceso determinado renderiza fotogramas de IU, en el informe también se indican los fotogramas renderizados junto con el cronograma. El tiempo avanza a medida que te desplazas de izquierda a derecha en el informe.

El informe incluye las siguientes secciones, desde arriba hacia abajo.

Interacciones del usuario

En la primera sección se incluyen barras que representan interacciones del usuario específicas en tu app o juego, como presionar la pantalla del dispositivo. Estas interacciones funcionan como marcadores de tiempo útiles.

Actividad de la CPU

En la siguiente sección, se muestran barras que representan la actividad de subprocesos en cada CPU. Las barras muestran la actividad de la CPU en todas las apps, incluidos tu app o juego.

La sección Actividad de la CPU es expandible, lo que te permite ver la frecuencia del reloj de cada una. En la Figura 1, se muestra un ejemplo de una sección de actividad de la CPU contraída, y en la Figura 2, una versión expandida que muestra la frecuencia del reloj:

Captura de pantalla del informe de Systrace
Figura 1. Ejemplo de actividad de la CPU (vista contraída) en un informe de Systrace

Captura de pantalla del informe de Systrace
Figura 2. Actividad de la CPU de ejemplo (vista expandida) que muestra la frecuencia del reloj de la CPU en un informe de Systrace

Eventos del sistema

En los histogramas de esta sección se muestran eventos específicos a nivel del sistema, como conteos de texturas y el tamaño total de objetos específicos.

Un histograma que vale la pena examinar en más detalle es el etiquetado SurfaceView. El conteo representa el número de búferes de fotogramas compuestos que se pasaron a la canalización de pantalla y que esperan para mostrarse en la pantalla del dispositivo. Debido a que la mayoría de los dispositivos tienen búfer doble o triple, este conteo casi siempre es igual a 0, 1 o 2.

En la Figura 3, se muestran otros histogramas que representan el proceso de Surface Flinger, incluidos los eventos VSync y el trabajo de intercambio de subproceso de IU:

Captura de pantalla del informe de Systrace
Figura 3. Gráfico de muestra de Surface Flinger en un informe de Systrace

Fotogramas de visualización

En esta sección, a menudo la más extensa en el informe, se muestra una línea multicolor seguida de pilas de barras. Estas formas representan el estado y la pila de fotogramas de un subproceso en particular que se creó. Cada nivel de la pila representa una llamada a beginSection() o el comienzo de un evento de seguimiento personalizado que definiste para tu app o juego.

La línea multicolor encima de cada pila de barras representa el conjunto de estados de un subproceso en particular a lo largo del tiempo. Cada segmento de la línea puede tener uno de los siguientes colores:

Verde: En ejecución
El subproceso está completando una tarea relacionada con un proceso o respondiendo a una interrupción.
Azul: Ejecutable
El subproceso está disponible para ejecutarse, pero no está programado por el momento.
Blanco: Suspendido
El subproceso no tiene tareas para completar, quizás porque está bloqueado o porque tiene un bloqueo de exclusión mutua.
Naranja: Suspensión ininterrumpible
El subproceso está bloqueado en I/O o esperando a que se complete una operación del disco.
Púrpura: Suspensión interrumpible
El subproceso está bloqueado en otra operación de kernel, por lo general, relacionada con la administración de memoria.

Combinaciones de teclas

En la siguiente tabla, se incluyen las combinaciones de teclas que puedes usar mientras miras un informe de Systrace:

Clave Descripción
W Acercar el cronograma del seguimiento
A Desplazarse hacia la izquierda en el cronograma del seguimiento
S Alejar el cronograma del seguimiento
D Desplazarse hacia la derecha en el cronograma del seguimiento
E Centrar el cronograma del seguimiento en la ubicación actual del mouse
M Enmarcar la selección actual
1 Cambiar el modelo de selección actualmente activo al modo "selección". Corresponde al primer botón que aparece en la barra de herramientas del selector del mouse (consulta la imagen que está a la derecha). Captura de pantalla de la barra de herramientas del selector de mouse en el informe de Systrace
2 Cambiar el modelo de selección actualmente activo al modo "desplazamiento". Corresponde al segundo botón que aparece en la barra de herramientas del selector del mouse (consulta la imagen que está a la derecha). Captura de pantalla de la barra de herramientas del selector de mouse en el informe de Systrace
3 Cambiar el modelo de selección actualmente activo al modo "acercar". Corresponde al tercer botón que aparece en la barra de herramientas del selector del mouse (consulta la imagen que está a la derecha). Captura de pantalla de la barra de herramientas del selector de mouse en el informe de Systrace
4 Cambiar el modelo de selección actualmente activo al modo "sincronización". Corresponde al cuarto botón que aparece en la barra de herramientas del selector del mouse (consulta la imagen que está a la derecha). Captura de pantalla de la barra de herramientas del selector de mouse en el informe de Systrace
G Mostrar cuadrícula al inicio de la tarea seleccionada actualmente
Mayúsculas + G Mostrar cuadrícula al final de la tarea seleccionada actualmente
Flecha a la izquierda Seleccionar el evento anterior en el cronograma seleccionado actualmente
Flecha a la derecha Seleccionar el evento siguiente en el cronograma seleccionado actualmente

Cómo investigar problemas de rendimiento

Cuando interactúas con un informe de Systrace, puedes inspeccionar el uso que el dispositivo hace de la CPU durante la grabación. Para obtener ayuda con la navegación del informe HTML, consulta la sección combinaciones de teclas o haz clic en el botón ? en la esquina superior derecha del informe.

En las siguientes secciones se explica cómo inspeccionar los datos en el informe a fin de encontrar y corregir problemas de rendimiento.

Cómo identificar problemas de rendimiento

Cuando navegas por un informe de Systrace, puedes identificar problemas de rendimiento más fácilmente si realizas una de las siguientes acciones:

  • Dibuja un rectángulo alrededor del intervalo de tiempo que te interese para seleccionarlo.
  • Usa la herramienta de regla para marcar o destacar un área con problemas.
  • Si deseas ver una operación de actualización de la pantalla, haz clic en View Options > Highlight VSync.

Cómo inspeccionar alertas y fotogramas de IU

Como puedes ver en la Figura 4, en un informe de Systrace se muestra una lista de cada proceso que renderiza fotogramas de IU y se indica cada fotograma renderizado junto con el cronograma. Los fotogramas que se renderizan dentro de las 16.6 milésimas de segundos requeridas para mantener un nivel estable de 60 fotogramas por segundo se indican con círculos verdes. Los fotogramas que tardan más de 16.6 milésimas de segundos en renderizarse se indican con círculos amarillos o rojos.

Zoom en la vista de un fotograma
Figura 4. Visualización de Systrace después de acercar un fotograma de larga duración

Haz clic en el círculo de un fotograma para destacarlo y obtener información adicional sobre el trabajo que el sistema lleva a cabo a fin de renderizar ese fotograma, incluidas las alertas. En el informe también se muestran los métodos que el sistema estaba ejecutando mientras se renderizaba ese fotograma. Puedes investigar esos métodos para determinar las posibles causas de bloqueos de IU.

Fotograma con errores seleccionado
Figura 5. Cuando seleccionas un fotograma con errores, se muestra una alerta debajo del informe de seguimiento que identifica el problema

Después de seleccionar un fotograma lento, es posible que veas una alerta en el panel inferior del informe. En la alerta que se muestra en la Figura 5, se indica que el problema principal con el fotograma es que se dedicó demasiado tiempo al proceso de reciclaje y revinculación de ListView. Hay vínculos a los eventos relevantes en el seguimiento que explican mejor las tareas que realiza el sistema durante ese tiempo.

Para ver todas las alertas que la herramienta descubrió en el seguimiento, además de la cantidad de veces que el dispositivo activó una alerta, haz clic en la pestaña Alerts en el extremo derecho de la ventana, como se muestra en la Figura 6. El panel Alerts te ayuda a ver qué problemas se producen en el seguimiento y con qué frecuencia contribuyen al bloqueo. Considera a este panel como una lista de errores para corregir. A menudo, un cambio o una mejora pequeños en un área pueden quitar todo un conjunto de alertas.

Pestaña de alertas
Figura 6. Cuando haces clic en el botón Alert, se muestra la pestaña de alertas

Si ves que hay demasiado trabajo en el subproceso de IU, usa uno de los siguientes enfoques para determinar qué métodos consumen demasiado tiempo de la CPU: