Registrar los métodos de Java/Kotlin llamados durante la ejecución del código de tu app te permite ver la pila de llamadas y el uso de la CPU en un momento determinado, filtrados para los métodos de Java/Kotlin. Estos datos son útiles para identificar secciones de código que tardan mucho tiempo o consumen muchos recursos del sistema para ejecutarse. Si deseas obtener una vista completa de la pila de llamadas, incluidos los marcos de llamadas nativas, usa la tarea de generación de perfiles de muestra de pila de llamadas.
Cuando registras métodos de Java/Kotlin con el generador de perfiles de Android Studio, puedes elegir el tipo de registro:
Registro: Instrumenta tu app durante el tiempo de ejecución para registrar una marca de tiempo al principio y al final de cada llamada al método. Las marcas de tiempo se recopilan y se comparan para generar datos de seguimiento de métodos, incluida la información de sincronización. Debes usar el registro cuando te interesen los métodos exactos que se llaman. Dado que el registro es un proceso intensivo, si usas esta opción, es mejor que la grabación dure alrededor de cinco segundos o menos.
Muestreo (legado): Captura la pila de llamadas de tu app en intervalos frecuentes durante la ejecución del código basado en Java o Kotlin. El generador de perfiles compara conjuntos de datos capturados para derivar la información del uso de recursos y sincronización sobre la ejecución del código de tu app basado en Java o Kotlin. Debes usar el muestreo si te preocupa más el tiempo que los métodos exactos que se llaman.
Descripción general de los métodos de Java/Kotlin
Después de ejecutar la tarea Find CPU Hotspots, el generador de perfiles de Android Studio proporciona la siguiente información:
- Uso de CPU: Muestra el uso de CPU de tu app como un porcentaje de la capacidad total de CPU disponible por tiempo. Ten en cuenta que el uso de CPU incluye no solo los métodos de Java/Kotlin, sino también el código nativo. Destaca una sección de la línea de tiempo para filtrar los detalles de ese período.
- Interactions: Muestra la interacción del usuario y los eventos de ciclo de vida de la app en un cronograma.
- Threads: Muestra los subprocesos en los que se ejecuta tu app. En la mayoría de los casos, primero te enfocarás en el subproceso superior que representa tu app.
Para identificar los métodos o las pilas de llamadas que tardan más tiempo, usa el gráfico de llamas o el gráfico de arriba hacia abajo.