Maybaygiare.org

Blog Network

Inspeccionar la actividad de la CPU con el generador de perfiles de CPU

Optimizar el uso de la CPU de tu aplicación tiene muchas ventajas, como proporcionar una experiencia de usuario más rápida y fluida y preservar la duración de la batería del dispositivo.

Puede usar el generador de perfiles de CPU para inspeccionar el uso de CPU de su aplicación y la actividad de subprocesos en tiempo real mientras interactúa con su aplicación, o puede inspeccionar los detalles en rastros de métodos grabados, rastros de funciones y rastros de sistema.

Los tipos específicos de información que registra y muestra el generador de perfiles de CPU están determinados por la configuración de grabación que elija:

  • Seguimiento del sistema: Captura detalles detallados que le permiten inspeccionar cómo interactúa su aplicación con los recursos del sistema.
  • Rastreos de métodos y funciones: Para cada subproceso en el proceso de la aplicación, puede averiguar qué métodos (Java) o funciones (C/C++) se ejecutan durante un período de tiempo y los recursos de CPU que consume cada método o función durante su ejecución. También puede usar trazas de métodos y funciones para identificar a las personas que llaman y a los que llaman. Un llamador es un método o función que invoca a otro método o función, y un llamador es uno que es invocado por otro método o función. Puede usar esta información para determinar qué métodos o funciones son responsables de invocar tareas particulares con muchos recursos con demasiada frecuencia y optimizar el código de su aplicación para evitar trabajos innecesarios.

    Al grabar trazas de métodos, puede elegir grabación muestreada o grabación instrumentada. Al grabar trazas de funciones, solo puede usar la grabación muestreada.

Para obtener más información sobre el uso y la elección de cada una de estas opciones de seguimiento, seleccione una configuración de grabación.

Descripción general del generador de perfiles de CPU

Para abrir el generador de perfiles de CPU, siga estos pasos:

  1. Seleccione Ver > Herramienta Windows > Generador de perfiles o haga clic en Perfil en la barra de herramientas.

    Si el cuadro de diálogo Seleccionar destino de implementación se lo solicita, elija el dispositivo que desea implementar la aplicación para crear perfiles. Si has conectado un dispositivo a través de USB pero no lo ves en la lista, asegúrate de que has habilitado la depuración USB.

  2. Haga clic en cualquier parte de la línea de tiempo de la CPU para abrir el generador de perfiles de CPU.

Al abrir el generador de perfiles de CPU, inmediatamente comienza a mostrar la actividad de CPU y subprocesos de la aplicación. Deberías ver algo similar a la figura 1.

la Figura 1. Líneas de tiempo en el generador de perfiles de CPU.

Como se indica en la figura 1, la vista predeterminada para el generador de perfiles de CPU incluye las siguientes líneas de tiempo:

  1. Línea de tiempo de eventos: Muestra las actividades de la aplicación a medida que pasan por diferentes estados de su ciclo de vida e indica las interacciones del usuario con el dispositivo, incluidos los eventos de rotación de pantalla. Para obtener información sobre cómo habilitar la cronología de eventos en dispositivos que ejecutan Android 7.1 (nivel de API 25) y versiones anteriores, consulte Habilitar la generación de perfiles avanzada.
  2. Cronología de la CPU: Muestra el uso de la CPU en tiempo real de la aplicación, como porcentaje del tiempo total de CPU disponible, y el número total de subprocesos que está utilizando la aplicación. La línea de tiempo también muestra el uso de CPU de otros procesos (como procesos del sistema u otras aplicaciones), para que pueda compararlo con el uso de su aplicación. Puede inspeccionar los datos históricos de uso de la CPU moviendo el ratón a lo largo del eje horizontal de la línea de tiempo.
  3. Línea de tiempo de actividad de subprocesos: enumera cada subproceso que pertenece al proceso de tu aplicación e indica su actividad a lo largo de una línea de tiempo con los colores que se enumeran a continuación. Después de registrar un seguimiento, puede seleccionar un hilo de esta línea de tiempo para inspeccionar sus datos en el panel seguimiento.
    • Verde: El subproceso está activo o listo para usar la CPU. Es decir, está en estado de ejecución o ejecutable.
    • Amarillo: El hilo está activo, pero está esperando una operación de E/S, como E/S de disco o de red, antes de que pueda completar su trabajo.
    • Gris: El hilo está en reposo y no consume tiempo de CPU. Esto a veces ocurre cuando el subproceso requiere acceso a un recurso que aún no está disponible. O el hilo entra en suspensión voluntaria, o el núcleo lo pone en suspensión hasta que el recurso requerido esté disponible.

    El generador de perfiles de CPU también informa el uso de CPU de subprocesos que Android Studio y la plataforma Android agregan al proceso de tu aplicación, como JDWPProfile SaverStudio:VMStatsStudio:Perfa y Studio:Heartbeat (aunque los nombres exactos que se muestran en la línea de tiempo de actividad del hilo pueden variar). Android Studio informa de estos datos para que puedas identificar cuándo la actividad de subprocesos y el uso de la CPU son realmente causados por el código de tu aplicación.

Grabar trazas

Para iniciar la grabación de una traza, seleccione una configuración de grabación en cualquiera de los menús desplegables situados encima o debajo del generador de perfiles de CPU y haga clic en Grabar.

la Figura 2. El generador de perfiles de CPU muestra el estado, la duración y el tipo de grabación que se está realizando.

Interactúa con tu aplicación y, a continuación, haz clic en Detener cuando hayas terminado. El generador muestra automáticamente su información de seguimiento en el panel de seguimiento, como se muestra en la figura 3:

Figura 3. El generador de perfiles de CPU después de grabar el trazo de amétodo.

  1. Rango seleccionado: Determina la parte del tiempo registrado a inspeccionar en el panel de seguimiento. La primera vez que graba un seguimiento, el generador de perfiles de CPU selecciona automáticamente toda la duración de la grabación en la línea de tiempo de la CPU. Para inspeccionar los datos de seguimiento solo para una parte del intervalo de tiempo registrado, arrastre los bordes de la región resaltada. Sección de interacción
  2. : Muestra la interacción del usuario y los eventos del ciclo de vida de la aplicación a lo largo de una línea de tiempo.
  3. Sección Hilos: Muestra la actividad del estado del hilo (como correr, dormir, etc.).) y Gráfico de llamadas (o gráfico de eventos de seguimiento en Seguimiento del sistema) para cada hilo a lo largo de una línea de tiempo.
    • Utilice atajos de teclado y ratón para navegar por la línea de tiempo.
    • Haga doble clic en el nombre del hilo o pulse Intro mientras se selecciona un hilo para expandirlo o contraerlo.
    • Seleccione un hilo para ver información adicional en el panel de análisis. Mantenga pulsada la tecla Mayús o Ctrl (Comando en Mac) para seleccionar varios hilos.
    • Seleccione una llamada a un método (o un evento de seguimiento en Seguimiento del sistema) para ver información adicional en el panel de análisis.
  4. panel Análisis de: Muestra los datos de seguimiento para el intervalo de tiempo y la llamada al hilo o método que ha seleccionado. En este panel, puede seleccionar cómo ver cada seguimiento de pila (mediante las pestañas análisis) y cómo medir el tiempo de ejecución (mediante el menú desplegable referencia de tiempo). Pestañas del panel de análisis
  5. : Elija cómo mostrar los detalles del seguimiento. Para obtener más información sobre cada opción, consulte Inspeccionar rastros.
  6. Menú de referencia de tiempo: Seleccione una de las opciones siguientes para determinar cómo se mide la información de tiempo de cada llamada (solo se admite en métodos Java de ejemplo/Seguimiento):
    • Hora del reloj de pared: La información de temporización representa el tiempo transcurrido real.
    • Tiempo de subproceso: La información de temporización representa el tiempo transcurrido real menos cualquier parte de ese tiempo cuando el subproceso no consume recursos de CPU. Para cualquier llamada dada, su tiempo de hilo es siempre menor o igual a su tiempo de reloj de pared. El uso de tiempo de subproceso le da una mejor comprensión de cuánto del uso real de la CPU de un subproceso se consume por un método o función dada. Filtro
  7. : Filtra los datos de seguimiento por función, método, clase o nombre de paquete. Por ejemplo, si desea identificar rápidamente los datos de seguimiento relacionados con una llamada específica, escriba el nombre en el campo de búsqueda. En la pestaña Gráfico de llamas, se enfatizan las pilas de llamadas que incluyen una llamada, un paquete o una clase que coincide con la consulta de búsqueda. En las pestañas de arriba hacia abajo y de abajo hacia arriba, esas pilas de llamadas se priorizan sobre otros resultados de seguimiento. También puede habilitar las siguientes opciones marcando la casilla correspondiente junto al campo de búsqueda:
    • Expresión regular: Para incluir expresiones regulares en su búsqueda, utilice esta opción.
    • Coincidir mayúsculas y minúsculas: Si la búsqueda distingue entre mayúsculas y minúsculas, utilice esta opción.

Consejo: Al inspeccionar la línea de tiempo de los hilos, están disponibles los siguientes accesos directos:

  • Ampliar: Presione W o desplace la rueda del ratón mientras mantiene presionada Ctrl (Comando en Mac).
  • Alejar: Presione S o desplace la rueda del ratón hacia atrás mientras mantiene presionada Ctrl (Comando en Mac).
  • Panorámica izquierda: Pulse A o arrastre el ratón a la derecha mientras mantiene pulsado el espacio.
  • Panorámica derecha: Pulse D o arrastre el ratón a la izquierda mientras mantiene pulsado el espacio.
  • Expandir o contraer un hilo: haga doble clic en el nombre del hilo o presione Entrar mientras se selecciona un hilo.

Elija una configuración de grabación

Antes de comenzar a grabar información de seguimiento, elija la configuración de grabación adecuada para la información de perfiles que desea capturar:

  • Métodos Java de ejemplo: Captura la pila de llamadas de su aplicación a intervalos frecuentes durante la ejecución de código basado en Java de su aplicación. El generador de perfiles compara conjuntos de datos capturados para obtener información sobre el tiempo y el uso de recursos acerca de la ejecución de código basado en Java de la aplicación.

    Un problema inherente al seguimiento basado en muestras es que si la aplicación ingresa a un método después de una captura de la pila de llamadas y sale del método antes de la siguiente captura, el generador de perfiles no registra esa llamada al método. Si está interesado en métodos de rastreo con ciclos de vida tan cortos, debe usar rastreo instrumentado.

  • Rastrear métodos Java: Instrumenta su aplicación en tiempo de ejecución para grabar una marca de tiempo al principio y al final de cada llamada a método. Las marcas de tiempo se recopilan y comparan para generar datos de seguimiento de métodos, incluida la información de tiempo y el uso de la CPU.

    Tenga en cuenta que la sobrecarga asociada con la instrumentación de cada método afecta el rendimiento en tiempo de ejecución y puede influir en los datos de perfiles; esto es aún más notable para los métodos con ciclos de vida relativamente cortos. Además, si su aplicación ejecuta una gran cantidad de métodos en poco tiempo, el generador de perfiles puede exceder rápidamente su límite de tamaño de archivo y es posible que no pueda registrar más datos de rastreo.

  • Funciones de muestra de C / C++: Captura rastros muestreados de los hilos nativos de tu aplicación. Para usar esta configuración, debes implementar la aplicación en un dispositivo que ejecute Android 8.0 (nivel de API 26) o superior.

    Internamente, esta configuración utiliza simpleperf para rastrear el código nativo de la aplicación. Si desea especificar opciones adicionales para simpleperf, como muestrear CPU de dispositivo específicas o especificar duraciones de muestreo con alta precisión, puede usar simpleperf desde la línea de comandos.

  • Rastrear llamadas al sistema: Captura detalles detallados que le permiten inspeccionar cómo interactúa su aplicación con los recursos del sistema. Puede inspeccionar los tiempos y duraciones exactos de los estados de los subprocesos, visualizar dónde se encuentran los cuellos de botella de la CPU en todos los núcleos y agregar eventos de seguimiento personalizados para analizar. Dicha información puede ser crucial a la hora de solucionar problemas de rendimiento. Para usar esta configuración, debes implementar la aplicación en un dispositivo que ejecute Android 7.0 (nivel de API 24) o superior.

    Al usar esta configuración de seguimiento, puede marcar visualmente rutinas de código importantes en la línea de tiempo del generador de perfiles instrumentando su código. Para instrumentar el código C/C++, utilice la API de rastreo nativa proporcionada por trace.h. Para instrumentar código Java, utilice la clase Trace. Para obtener más información, consulte Instrumentar el código de la aplicación.

    Esta configuración de seguimiento se basa en systrace. Puede usar la utilidad de línea de comandos systrace para especificar opciones más allá de las proporcionadas en el generador de perfiles de CPU. Los datos adicionales a nivel de sistema proporcionados por systrace pueden ayudarlo a inspeccionar los procesos nativos del sistema y solucionar problemas de fotogramas caídos o retrasados.

    En dispositivos con Android 9 (nivel de API 28) o superior, puedes usar una aplicación del sistema llamada Rastreo del sistema para registrar los rastros del sistema en un dispositivo.

Crear, editar o ver una configuración de grabación

Puede crear, editar y ver configuraciones de grabación en el cuadro de diálogo Configuraciones de grabación de CPU, que abre seleccionando Editar configuraciones en el menú desplegable configuraciones de grabación en la parte superior del generador de perfiles de CPU.

Para ver la configuración de una configuración de grabación existente, selecciónela en el panel izquierdo del cuadro de diálogo Configuraciones de grabación de CPU.

Para crear una nueva configuración de grabación, haga lo siguiente:

  1. Haga clic en Agregar en la parte superior izquierda del cuadro de diálogo. Esto crea una nueva configuración con algunos ajustes predeterminados.
  2. Nombre su configuración.
  3. Seleccione una tecnología de rastreo.
  4. Para las configuraciones de grabación muestreada, especifique el intervalo de muestreo en microsegundos (µs). Este valor representa el tiempo entre cada muestra de la pila de llamadas de tu app. Cuanto más corto sea el intervalo que especifique, más rápido alcanzará el límite de tamaño de archivo para los datos grabados.
  5. Especifique el límite de tamaño de archivo, en megabytes (MB), para los datos grabados que se escriben en el dispositivo conectado. Al detener la grabación, AndroidStudio analiza estos datos y los muestra en la ventana del generador de perfiles. Por lo tanto, si aumentas el límite y grabas una gran cantidad de datos, Android Studio tarda mucho más en analizar el archivo y puede dejar de responder.Nota: Si utiliza un dispositivo conectado que ejecuta Android 8.0 (nivel de API 26)o superior, no hay límite en el tamaño de archivo de los datos de seguimiento y se ignora el valor de este valor. Sin embargo, aún debe tener cuidado con la cantidad de datos que recopila el dispositivo después de cada grabación: Android Studio puede tener dificultades para crear archivos de seguimiento de gran tamaño. Por ejemplo, si está grabando una traza de muestreo con un intervalo de muestreo corto o una traza instrumentada mientras su aplicación llama a muchos métodos en poco tiempo, generará archivos de trazas grandes rápidamente.
  6. Para aceptar los cambios y seguir realizando cambios en otras configuraciones,haga clic en Aplicar. Para aceptar todos los cambios aplicados y cerrar el cuadro de diálogo, haga clic en Aceptar.

Registre la actividad de la CPU con la API de depuración

Puede usar la API Debug para que su aplicación pueda iniciar y detener la grabación de la actividad de la CPU en el generador de perfiles de CPU.

El generador de perfiles de CPU comienza a grabar cuando la aplicación llamastartMethodTracing(String tracePath), y el generador de perfiles de CPU deja de grabar cuando la aplicación llamastopMethodTracing(). Mientras se graba la actividad de la CPU que se activa con esta API, el generador de perfiles de CPU muestra la API de BUGS como la configuración de grabación activa de la CPU.

Para controlar la grabación de la actividad de la CPU con la API Debug, implemente su aplicación integrada en un dispositivo que ejecute Android 8.0 (nivel de API 26) o superior.

Importante: La API Debug se utiliza separadamente de otros medios para iniciar y detener la grabación de CPUactivity, como los botones de la interfaz gráfica de usuario del generador de perfiles de CPU y la configuración de la configuración de grabación para la grabación automática en appstartup.

Debido al límite de tamaño del búfer de 8 MB, el método startMethodTracing(String tracePath) en la API Debug está diseñado para intervalos cortos o escenarios que son difíciles de iniciar/detener la grabación manualmente. Para períodos de grabación más largos, utilice la interfaz de usuario del generador de perfiles en Android Studio.

Para obtener más información, consulte Generar registros de seguimiento mediante la instrumentación de su aplicación.

Grabar la actividad de la CPU durante el inicio de la aplicación

Para comenzar a grabar la actividad de la CPU automáticamente durante el inicio de la aplicación, haga lo siguiente:

  1. Seleccione Ejecutar > Editar configuraciones.
  2. En la ficha Creación de perfiles, marque la casilla situada junto a Iniciar la grabación de una trayectoria de método al iniciar.
  3. Seleccione una configuración de grabación de CPU en el menú.
  4. haga Clic en Aplicar.
  5. Implemente su aplicación en un dispositivo que ejecute Android 8.0 (nivel de API 26) o superior seleccionando Ejecutar > Perfil.

Exportar trazas

Después de registrar la actividad de la CPU con el generador de perfiles de CPU, puede exportar los datos del archivo asa .trace para compartirlos con otros o inspeccionarlos más tarde.

Para exportar un archivo de seguimiento desde la línea de tiempo de la CPU, haga lo siguiente:

  1. En la línea de tiempo de la CPU, haga clic con el botón secundario en el seguimiento del método grabado o seguimiento del sistema que desea exportar.
  2. Seleccione Exportar seguimiento en el menú.
  3. Busque donde desea guardar el archivo, especifique el nombre del archivo y haga clic enok.

Para exportar un archivo de seguimiento desde el panel Sesiones, haga lo siguiente:

  1. En el panel Sesiones, haga clic con el botón secundario en el seguimiento grabado que desee exportar.
  2. Haga clic en el botón Exportar seguimiento del método o Exportar seguimiento del sistema a la derecha de la entrada de la sesión.
  3. Busque donde desea guardar el archivo, especifique el nombre del archivo y haga clic enok.

Importar trazas

Puede importar archivos.trace creados con la API o el generador de perfiles de CPUDebug.

Importe su archivo de seguimiento haciendo clic en Iniciar nueva sesión del generador de perfiles en el panel Sesiones del generador de perfiles y, a continuación, seleccione Cargar desde archivo.

Puede inspeccionar una traza importada en el generador de perfiles de CPU de la misma manera que lo hace con las trazas capturadas directamente en el generador de perfiles de CPU, con las siguientes excepciones:

  • La actividad de la CPU no se representa a lo largo de la línea de tiempo de la CPU (excepto en el Seguimiento del sistema).
  • La línea de tiempo de la sección Subprocesos no muestra estados de subprocesos como ejecutar, esperar o dormir (excepto en Seguimiento del sistema).

Inspeccionar trazas

La vista de trazas en el generador de perfiles de CPU proporciona varias formas de ver la información de trazas grabadas.

Para trazas de métodos y trazas de funciones, puede ver el Gráfico de llamadas directamente en la línea de tiempo de Subprocesos y en las pestañas Gráfico de llamas, De arriba hacia abajo y de abajo hacia arriba del panel de análisis. Para las trazas del sistema, puede ver los Eventos de Trazas directamente en la línea de tiempo de Subprocesos y en las pestañas Gráfico de Llamas, De arriba hacia abajo y de abajo hacia arriba desde el Plano de análisis.

Los atajos de teclado y ratón están disponibles para facilitar la navegación de Gráficos de Llamadas o Eventos de Seguimiento.

Inspeccionar trazas utilizando el Gráfico de llamadas

El Gráfico de llamadas proporciona una representación gráfica de una traza de método o traza de función, donde el período y el tiempo de una llamada se representan en el eje horizontal, y sus llamadas se muestran a lo largo del eje vertical. Las llamadas a las API del sistema se muestran en naranja, las llamadas a los métodos propios de la aplicación se muestran en pantalla y las llamadas a API de terceros (incluidas las API del lenguaje Java) se muestran en Azul. La Figura 4 muestra un gráfico de llamadas de ejemplo e ilustra el concepto de tiempo propio, tiempo de los niños y tiempo total para un método o función dado. Puede obtener más información sobre estos conceptos en la sección sobre cómo inspeccionar trazas usando de arriba hacia abajo y de abajo hacia arriba.

la Figura 4. Un gráfico de llamadas de ejemplo que ilustra el método D, los niños y el tiempo total.

Tip: Para saltar el código fuente de un método o función, haga clic con el botón derecho en él y seleccione Saltar al código fuente. Esto funciona desde cualquiera de las pestañas del panel de análisis.

Inspección de trazas mediante la pestaña del Gráfico de llamas

La pestaña del gráfico de llamas proporciona un gráfico de llamadas invertido que agrega pilas de llamadas idénticas. Es decir, los métodos o funciones idénticos que comparten la misma secuencia de llamantes se recopilan y representan como una barra más larga en el gráfico de llamas (en lugar de mostrarlos como varias barras más cortas, como se muestra en el gráfico de llamadas). Esto hace que sea más fácil ver qué métodos o funciones consumen más tiempo. Sin embargo, esto también significa que el eje horizontal no representa una línea temporal; en su lugar, indica la cantidad de tiempo relativo que tarda en ejecutarse cada método o función.

Para ayudar a ilustrar este concepto, considere el gráfico de llamadas de la figura 5. Nótese que el método D hace varias llamadas a B (B1, B2 y B3), y algunas de esas llamadas a B hacen una llamada a C (C1 y C3).

la Figura 5. Un gráfico de llamadas con múltiples llamadas a métodos que comparten una secuencia común de personas que llaman.

Debido a que B1, B2 y B3 comparten la misma secuencia de llamantes (A → D → B), se agregan, como se muestra en la figura 6. De manera similar,C1 y C3 se agregan porque comparten la misma secuencia de llamantes (A → D → B → C); tenga en cuenta que C2 no está incluido porque tiene una secuencia diferente de llamantes (A → D → C).

la Figura 6. Agregar métodos idénticos que compartan la misma pila de llamadas.

Las llamadas agregadas se utilizan para crear el gráfico de llamas, como se muestra en la figura 7.Tenga en cuenta que, para cualquier llamada dada en un gráfico de llamas, los llamados que consumen la mayor parte del tiempo de CPU aparecen primero.

la Figura 7. Una representación de un gráfico de llamas del gráfico de llamada que se muestra en la figura 5.

Inspeccionar trazas usando de Arriba hacia abajo y de abajo hacia arriba

La pestaña de arriba hacia abajo muestra una lista de llamadas en la que la expansión de un nodo de método o función muestra sus destinatarios. La figura 8 muestra un gráfico de arriba hacia abajo para el gráfico de llamadas de la figura 4. Cada flecha en el gráfico apunta de una persona que llama a una persona que llama.

Como se muestra en la figura 8, expandiendo el nodo para el método A en la pestaña de arriba hacia abajo muestra sus llamados, métodos B y D. Después de eso, expandiendo el nodo para methodD expone sus llamados, métodos B y C, y así sucesivamente. Al igual que el charttab de llama, los agregados de árbol de arriba hacia abajo rastrean información para métodos idénticos que comparten la misma pila de llamadas. Es decir, la pestaña del gráfico de llamas proporciona una representación gráfica de la pestaña de arriba hacia abajo.

La pestaña de arriba hacia abajo proporciona la siguiente información para ayudar a describir el tiempo de CPU empleado en cada llamada (los tiempos también se representan como un porcentaje del tiempo total del hilo en el rango seleccionado):

  • Self: el tiempo que la llamada al método o a la función pasó ejecutando su propio código y no el de sus llamadas, como se ilustra en la figura 4 para el método D.
  • Hijos: el tiempo que la llamada al método o a la función pasó ejecutando sus llamadas y no su propio código, como se ilustra en la figura 4 para el método D.
  • Total: la suma del tiempo de Uno Mismo y de los niños del método. Esto representa el tiempo total que la aplicación pasó ejecutando una llamada, como se ilustra en la figura 4 para el método D.

Figura 8. Un árbol de arriba Abajo.

la Figura 9. Un árbol de abajo hacia arriba para el método C de la figura 8.

La pestaña de abajo hacia arriba muestra una lista de llamadas en la que la expansión del nodo de una función o método muestra sus llamadores. Utilizando la traza de ejemplo que se muestra en la figura 8, la figura 9 proporciona un árbol ascendente para el método C. Abrir el nodo para el método C En el árbol de abajo hacia arriba muestra cada uno de sus llamadores únicos, los métodos B y D. Nota Que, aunque B llama a C dos veces, B aparece solo una vez al expandir el nodo del método C en el árbol de abajo hacia arriba. Después de eso, expandiendo el nodo para B displaysits llamador, métodos A y D.

La pestaña de abajo hacia arriba es útil para ordenar métodos o funciones por aquellos que consumen más (o menos) tiempo de CPU. Puede inspeccionar cada nodo para determinar qué personas que llaman pasan la mayor parte del tiempo de CPU invocando esos métodos o funciones.En comparación con el árbol de arriba hacia abajo, la información de tiempo para cada método o función en el árbol de abajo hacia arriba se refiere al método en la parte superior de cada árbol (nodo superior).El tiempo de CPU también se representa como un porcentaje del tiempo total del subproceso durante esa grabación. La siguiente tabla ayuda a explicar cómo interpretar la información de tiempo para el nodo superior y sus llamadores (sub-nodos).

Self Children Total
Método o función en la parte superior del árbol de abajo hacia arriba (nodo superior) Representa el tiempo total que el método o función pasó ejecutando su propio código y no el de sus destinatarios. En comparación con el árbol de arriba hacia abajo, esta información de tiempo representa la suma de todas las llamadas a este método o función durante la duración de la grabación. Representa el tiempo total que el método o función pasó ejecutando sus llamadas y no su propio código. En comparación con el árbol de arriba hacia abajo, esta información de tiempo representa la suma de todas las llamadas a los llamados de este método o función durante la duración de la grabación. La suma del tiempo de uno mismo y el tiempo de los niños.
Los que llaman (sub-nodos) Representa el tiempo total del que llama cuando es llamado por el que llama. Usando el árbol de abajo hacia arriba en la figura 9 como ejemplo, el tiempo propio para el método B sería igual a la suma de los tiempos propios para cada ejecución del método C cuando es llamado por B. Representa el tiempo total de los hijos del llamante cuando es invocado por el llamante. Usando el árbol de abajo hacia arriba en la figura 9 como ejemplo, el tiempo de los hijos para el método B sería igual a la suma de los tiempos de los hijos para cada ejecución del método C cuando es llamado por B. La suma del tiempo de uno mismo y el tiempo de los hijos.

tenga en cuenta: Para una grabación determinada, Android Studio deja de recopilar datos nuevos cuando el generador de perfiles alcanza el límite de tamaño de archivo (sin embargo, esto no detiene la grabación). Por lo general, esto sucede mucho más rápidamente cuando se realizan trazas instrumentadas, ya que este tipo de trazas recopila más datos en un tiempo más corto, en comparación con un trazo muestreado. Si extiende el tiempo de inspección a un intervalo de la grabación que se produjo después de alcanzar el límite, los datos de temporización en el panel de seguimiento no cambian (porque no hay datos nuevos disponibles). Además, el panel de seguimiento muestra NaN para obtener información de temporización cuando selecciona únicamente la parte de una grabación que no tiene datos disponibles.

Inspeccionar trazas del sistema

Al inspeccionar un seguimiento del sistema, puede examinar los eventos de seguimiento en la línea de tiempo de los hilos para ver los detalles de los eventos que ocurren en cada hilo.Pase el puntero del ratón por encima de un evento para ver el nombre del evento y el tiempo empleado en cada estado. Haga clic en un evento para ver más información en el panel Análisis.

El panel Núcleos de CPU (como se muestra en la figura 10) muestra la actividad de subprocesos programada en cada núcleo. Pase el puntero del ratón sobre una actividad de hilo para ver en qué hilo se está ejecutando este núcleo en ese momento en particular.

la Figura 10. Visualización de eventos de seguimiento y actividad de la CPU para el subproceso de procesamiento.

Para obtener información adicional sobre la inspección de la información de seguimiento del sistema, consulte la sección Investigar problemas de rendimiento de la interfaz de usuario de la documentación systrace.

Inspeccionar datos de renderizado de fotogramas

Puede inspeccionar el tiempo que tarda su aplicación en renderizar cada fotograma en el hilo principal y RenderThread para investigar los cuellos de botella que causan jank de interfaz de usuario y bajos fotogramas.

Para ver los datos de renderizado de fotogramas,registre un seguimiento mediante una configuración que le permita rastrear llamadas al sistema. Después de grabar la pista, busque información sobre cada fotograma en la línea de tiempo de fotogramas en la sección de visualización, como se muestra en la figura 11.

la Figura 11. Cada fotograma que tarda más de 16m se muestra en rojo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.