Después de recuperar un perfil de un dispositivo de prueba o descargarlo de tu backend, puedes abrir el archivo en la IU de Perfetto para inspeccionar los cronogramas, los estados de los subprocesos y los gráficos de retención de memoria. En esta página, se describe cómo navegar
por los seguimientos del sistema y los volcados de montón de Java redactados que se capturaron con ProfilingManager.
Visualiza los registros del sistema
Abre tu archivo .perfetto-trace en la IU de Perfetto para inspeccionar la actividad de la CPU y los subprocesos a lo largo del tiempo.
Para proteger la privacidad del usuario, ProfilingManager oculta los registros del sistema combinando la actividad de la CPU de todos los demás procesos en un solo segmento de OtherProcesses.
Inspeccionar esta pista combinada te permite determinar si la lentitud de tu app se debió a un cuello de botella interno o a la carga general del dispositivo.
En la Figura 2, se destacan las secciones principales de un registro del sistema redactado:
- Lista de CPU: Muestra todos los procesadores disponibles en tu dispositivo.
- Tareas de CPU: Muestra qué subprocesos estaba ejecutando cada CPU.
- Vista de otros procesos: Muestra los recursos de CPU que consumen otros procesos.
- Process View: Muestra el proceso de tu app.
- Threads View: Muestra los subprocesos que se ejecutan dentro de tu proceso y sus estados (ejecutable [R], en ejecución [R], suspendido [S], suspensión ininterrumpida [D]), que se asignan directamente a los estados de proceso de Linux.
- Secciones de seguimiento: En esta sección, se muestran las anotaciones de seguimiento que agregaron los desarrolladores de apps o el framework. Estas anotaciones abarcan los cálculos
entre
Trace.beginSectionyTrace.endSection.
Para obtener más información sobre la IU de Perfetto y la visualización de registros, consulta la documentación de Perfetto.
Visualiza volcados de montón de Java
Una vez que captures un volcado de montón de Java con PROFILING_TYPE_JAVA_HEAP_DUMP,
abre el archivo .perfetto-java-heap-dump resultante en la IU de Perfetto para
identificar fugas de memoria o para optimizar el uso de memoria. En el Explorador de volcados de montón,
puedes explorar el gráfico de montón, inspeccionar los gráficos tipo llama de los tamaños de objetos acumulativos
y explorar clases, objetos y dominadores, como se muestra en la figura 3.
Diferencias entre los volcados de montón de ProfilingManager y los volcados de HPROF
A diferencia de los volcados de montón estándar de .hprof (como los que se capturan con Debug.dumpHprofData o en Android Studio), ProfilingManager captura un volcado de montón de ART de Perfetto (.perfetto-java-heap-dump). En lugar de volcar el contenido de la memoria sin procesar, ProfilingManager registra el gráfico de retención de objetos y los metadatos de tamaño, y omite los datos sin procesar almacenados dentro de los objetos:
- Qué se recopila:
- Clases y tipos: Nombres de clases, jerarquías de superclases, cargadores de clases, tamaños de instancias y tipos de referencias (como clases normales, arrays, cadenas o referencias débiles, suaves, de finalizador y fantasma).
- Instancias y tamaños de objetos: El tamaño aplanado de cada objeto (
self_size), su región de montón (HEAP_TYPE_APP,HEAP_TYPE_ZYGOTEoHEAP_TYPE_BOOT_IMAGE) y la memoria nativa asociada registrada a través deNativeAllocationRegistry. - Referencias y raíces de GC: Raíces de recolección de elementos no utilizados (como variables globales y locales de JNI, marcos de pila de Java y objetos de subprocesos) y cadenas de referencia a nivel de campo que muestran qué objeto retiene a otro y a través de qué nombre de campo.
- Selecciona metadatos de tamaño: Metadatos no sensibles para tipos de frameworks específicos, como las dimensiones de
Bitmap(mWidthymHeight).
- Qué se omite: Valores reales de campos primitivos, contenido de caracteres
Stringy cargas útiles de arrays sin procesar (byte[],char[]y otros arrays primitivos). Omitir el contenido de los objetos sin procesar protege la privacidad del usuario en los dispositivos de producción y mantiene los archivos de volcado significativamente más pequeños.
Próximos pasos
Además de la inspección visual en la IU de Perfetto, puedes consultar perfiles con PerfettoSQL, analizar seguimientos de forma masiva o analizar perfiles con IA.