The Android Developer Challenge is back! Submit your idea before December 2.

Navega por un informe de Systrace

En esta guía, se explica cómo navegar por un informe de Systrace e interpretarlo.

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 procesa marcos de IU, en el informe también se indican los marcos procesados 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. En las barras, se muestra la actividad de la CPU en todas las apps, incluidos tu app o tu juego.

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

Captura de pantalla del informe de Systrace
Figura 1: Actividad de la CPU de ejemplo (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 marcos 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 procesamiento de IU:

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

Marcos 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 marcos de un subproceso en particular que se creó. Cada nivel de la pila representa una llamada a beginSection() o el principio 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 su ejecución, 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:

Tecla 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 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 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 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 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ús + 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 marcos de IU

Como puedes ver en la figura 4, en un informe de Systrace se muestra una lista de cada proceso que renderiza marcos de IU y se indica cada marco renderizado junto con el cronograma. Los marcos que se renderizan dentro de las 16.6 milésimas de segundos requeridas para mantener un nivel estable de 60 marcos por segundo se indican con círculos verdes. Los marcos 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 marco
Figura 4: Pantalla de Systrace después de acercar un marco de larga duración

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

Marco con errores seleccionado
Figura 5: Cuando seleccionas un marco con errores, se muestra una alerta debajo del informe de seguimiento que identifica el problema

Después de seleccionar un marco lento, es posible que veas una alerta en el panel inferior del informe. En la alerta que puedes ver en la figura 5 se indica que el problema principal con el marco es que se dedicó demasiado tiempo a reciclar y volver a vincular en ListView. Hay enlaces a los eventos relevantes en el seguimiento que explican mejor las tareas que el sistema realiza durante este 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 ocurren 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: