Cómo ver un perfil del sistema

En el Inspector de GPU de Android (AGI), puedes ver y analizar un perfil del sistema en la IU del Generador de perfiles del sistema. Después de generar el perfil de un sistema y abrir el archivo de registro en AGI, el Generador de perfiles del sistema muestra los datos de generación de perfiles en un cronograma con elementos expandibles que muestran detalles adicionales.

Entre los elementos principales de la IU del Generador de perfiles del sistema, se incluyen los siguientes:

  • Barra de herramientas

  • Timeline: Indica el período de los eventos de seguimiento.

  • Panel Track: Muestra los datos de generación de perfiles en relación con el cronograma.

  • Panel Details: Es un panel expandible que muestra detalles sobre un elemento seleccionado.

Cómo generar perfiles de datos

En un archivo de seguimiento, los datos de creación de perfiles se almacenan en eventos con marca de tiempo llamados eventos de seguimiento. Los eventos de seguimiento consisten en varios tipos de porciones y contadores. Por ejemplo, los eventos de registro de CPU incluyen segmentos de programación, mientras que los eventos de registro de GPU incluyen contadores de rendimiento de GPU y porciones de subprocesos.

En la IU del Generador de perfiles del sistema, el panel de seguimiento contiene eventos de seguimiento que se muestran en filas denominadas seguimientos, que se basan en el cronograma. Los segmentos del mismo tipo se muestran en los grupos de segmentos.

Segmentos de GPU

Los segmentos de GPU muestran información de generación de perfiles de la GPU. Estos son los principales tipos de segmentos de GPU:

  1. Seguimientos de cola de GPU: Actividad de GPU de la aplicación.

  2. Seguimientos de contador de GPU: Contadores de hardware de GPU muestreados en intervalos periódicos.

  3. Vulkan Events Track: Eventos relacionados con la API de Vulkan.

  4. Seguimientos de SurfaceFlinger: Son eventos de SurfaceFlinger que indican cómo se mueven los búferes de gráficos en el sistema.

Seguimientos de la cola de GPU

Una GPU puede tener uno o más segmentos de cola de GPU según la cantidad de colas de hardware que se ejecutaron durante el seguimiento. Los segmentos de la cola de GPU contienen porciones de actividad que representan el período y el tipo de trabajo de la GPU que usó tu app.

Una porción de actividad contiene metadatos que puedes ver, como el búfer de comandos de Vulkan, el pase de renderización y el búfer de fotogramas que inició el trabajo. Los controladores de Vulkan de estos objetos se muestran en el panel de detalles de la siguiente manera:

  • VkCommandBuffer
  • VkRenderPass
  • VkFrameBuffer

Puedes asignar nombres fáciles de usar a estos objetos, de modo que puedas identificarlos con facilidad en un seguimiento junto con sus controladores, mediante la función vkSetDebugUtilsObjectNameEXT de la extensión VK_EXT_debug_utils o la función vkDebugMarkerSetObjectNameEXT de la extensión VK_EXT_debug_marker. AGI implementa ambas extensiones y están disponibles para tu aplicación durante el seguimiento.

Pistas de contador de GPU

El contador de GPU realiza un seguimiento del valor de los contadores de rendimiento de la GPU muestreados en un intervalo periódico. Los gráficos muestran variaciones en el rendimiento de tus GPU subyacentes de los componentes de hardware entre las muestras. Puedes usar esta información para identificar cuellos de botella en el uso de GPU.

Los contadores disponibles son específicos del hardware. Para ver descripciones breves de cada contador, coloca el cursor sobre el nombre del segmento. Para obtener más detalles, consulta Contadores de rendimiento de GPU.

Pista de eventos de Vulkan

El segmento de eventos de Vulkan muestra los eventos de la API de Vulkan que se registraron durante el seguimiento. Los tipos de eventos de seguimiento son principalmente eventos de envío en cola (llamadas de vkQueueSubmit). Si haces clic en un evento de envío de cola, AGI destaca las porciones de actividad de la GPU que están asociadas con la llamada. Puedes usar estos datos para inspeccionar el trabajo asíncrono en cola de las llamadas a la API de Vulkan y la latencia entre la CPU y la GPU.

Pistas de SurfaceFlinger

Los segmentos de SurfaceFlinger muestran el ciclo de vida de los búferes de gráficos (los objetivos de renderización de la cadena de intercambio de una app) a medida que pasan por el sistema hasta que se muestran. Los eventos se agregan por búfer a fin de facilitar el seguimiento de la sobrecarga y la latencia necesarias para adquirir y publicar búferes.

Cómo interactuar con los datos de generación de perfiles

En esta sección, se describe cómo interactuar con los datos de generación de perfiles en la IU del Generador de perfiles del sistema.

Fijar

Puedes fijar segmentos y grupos de seguimiento con el botón Fijar.

Contraer y expandir

Es posible contraer algunos segmentos y todos los grupos de segmentos. Algunos grupos de segmentos muestran un resumen cuando se contraen. Por ejemplo, cuando se contrae, el grupo de seguimiento de CPU muestra el uso general de la CPU en un gráfico.

Zoom

AGI agrega datos de generación de perfiles según el nivel de zoom. Cuando abres un archivo de registro por primera vez, la IU del Generador de perfiles del sistema muestra todo el perfil en el nivel máximo de alejamiento. Para inspeccionar el perfil, busca áreas de interés y consulta los detalles.

A medida que acercas y alejas los diferentes tipos de recorridos, estos muestran diferentes tipos de datos de generación de perfiles. Por ejemplo, al principio, los segmentos de CPU muestran fragmentos de tiempo de cada subproceso y, luego, cambian a mostrar los datos de uso del núcleo de CPU cuando acercas la imagen.

Ver detalles

Para mostrar metadatos detallados en el panel de detalles, selecciona elementos en el panel del segmento. Si se puede seleccionar un elemento, colocar el cursor sobre él cambiará el cursor a un puntero y, luego, podrás elegir el elemento.

Selecciona un intervalo de tiempo

Puedes seleccionar un intervalo de tiempo, que te permite comparar eventos de seguimiento de diferentes segmentos. Para hacerlo, habilita el modo Timing y, luego, arrastra para seleccionar un rango. Todo lo que esté fuera del rango se atenuará y se mostrará la duración del rango.

También puedes presionar M para seleccionar el intervalo de tiempo de una porción seleccionada. Luego, puedes desplazarte por los segmentos adicionales para identificar eventos del mismo período.

Puedes navegar por los elementos del panel del segmento con las teclas WASD o mediante el desplazamiento lateral. El Generador de perfiles del sistema usa las mismas combinaciones de teclas y mouse que Systrace. Las combinaciones de teclas disponibles incluyen las siguientes:

  • W y S, o Ctrl++ y Ctrl+- para hacer zoom.
  • A y D, o las flechas left y right desplazan la vista hacia la izquierda y la derecha.
  • Q y E, o las flechas up y down permiten desplazarse por las pistas.
  • Mantén presionado shift para aumentar la velocidad de movimiento de la navegación.
  • Ctrl+desplazamiento hace zoom en el elemento seleccionado.
  • F hace zoom en un elemento seleccionado.
  • Se restablece Z+0 y se aleja por completo.
  • V destaca VSync si está disponible en el seguimiento.
  • M marca la selección actual cuando seleccionas su intervalo de tiempo.
  • H o ? muestran la hoja de referencia de combinaciones de teclas y mouse.

La barra de herramientas contiene botones que alternan entre los modos de navegación, los cuales seleccionan la acción que se realiza cuando arrastras elementos en el panel de seguimiento. También puedes seleccionar los siguientes modos de navegación presionando las teclas 1, 2, 3 y 4:

  1. Selección: Arrastra para seleccionar elementos.
  2. Desplazarse: arrastra para desplazarte por las pistas y hacer un desplazamiento lateral. Este es el modo predeterminado.
  3. Zoom: Arrastra verticalmente para acercar los elementos.
  4. Tiempo: Arrastra para seleccionar un intervalo de tiempo.

También puedes usar los modos de navegación con estas teclas modificadoras:

  • Shift+arrastra para marcar elementos de selección.
  • Space+arrastra para desplazarte lateralmente y desplazarte.
  • Ctrl+desplázate para hacer zoom.
  • Ctrl+arrastra para seleccionar un intervalo de tiempo.