¿Qué es el formato de archivo HPROF?
Los archivos con la extensión .hprof contienen volcados de memoria heap para programas que se ejecutan en la Java Virtual Machine (JVM). Los archivos .hprof son generados por el agente de perfilado HPROF integrado en el JDK. El formato es binario y puede llegar a ser muy grande -incluso varios GB-, de forma proporcional al tamaño del heap de la JVM en el momento de la captura. Como artefacto de diagnóstico, un archivo .hprof puede eliminarse de forma segura sin afectar al rendimiento de la aplicación.
Generación de archivos .hprof. Los archivos .hprof se generan normalmente durante errores de memoria de Java. El activador más común es un OutOfMemoryError: añadir el flag de la JVM -XX:+HeapDumpOnOutOfMemoryError hace que el entorno de ejecución escriba un volcado automáticamente al fallar. Los volcados también pueden crearse bajo demanda con jmap -dump:format=b,file=heap.hprof <pid> o jcmd <pid> GC.heap_dump. Los archivos de volcado de memoria también pueden crearse automáticamente tras una terminación abrupta de la JVM. Los dispositivos Android también producen archivos .hprof, pero en un formato interno ligeramente diferente que requiere conversión con hprof-conv antes de que las herramientas estándar de Java puedan leerlos.
Análisis de archivos .hprof - problemas de memoria de la aplicación. Los archivos .hprof pueden analizarse con la Eclipse Memory Analyzer Tool (MAT), una aplicación GUI de código abierto alojada por la Eclipse Foundation. MAT puede importar archivos .hprof y analizarlos en busca de errores OOM (Out of Memory), identificar fugas de memoria y ayudar a optimizar el uso de memoria de la aplicación. VisualVM, incluido en el JDK, es otro analizador ampliamente utilizado. Para el perfilado a nivel de producción, JFR (Java Flight Recorder) es ahora el enfoque preferido a partir de JDK 11; los volcados de heap HPROF siguen siendo la herramienta estándar para el análisis de fugas de memoria.
Seguridad y protección
RIESGO: MEDIUMLos archivos HPROF pueden contener datos sensibles: contraseñas, claves privadas, tokens de API o información personal que estuviera en la memoria heap de la JVM en el momento del volcado. Trate los volcados de heap como confidenciales; no suba volcados de producción a servicios de análisis en línea sin revisar o anonimizar los contenidos primero. Los archivos no son ejecutables y no suponen un riesgo de ejecución de código.
Detalles del formato
en pocas palabras- Android ART Heap Dump - Android Runtime genera archivos .hprof con un formato compatible pero no idéntico; conviértalos con hprof-conv (Android SDK) antes de abrirlos en MAT/VisualVM.
Programas que abren archivos HPROF
Detalles técnicos
especificación profunda| Codificación | Binario (principal); también se admite la opción de texto ASCII heredada |
| Orden de bytes | Big-endian |
| Contenedor | Formato de registro binario secuencial HPROF |
| Cadena mágica | «JAVA PROFILE 1.0.1» o «JAVA PROFILE 1.0.2» (terminada en nulo en el desplazamiento 0) |
| Versión de formato 1.0.1 | JDK 1.2-5; admite heaps de hasta 2 GB |
| Versión de formato 1.0.2 | JDK 6+; añade la etiqueta HEAP DUMP SEGMENT (0x1C) para heaps de más de 2 GB |
| Tamaño de archivo típico | 50 MB - 20 GB (proporcional al heap de la JVM en el momento del volcado) |
| Estructura de registro | Etiqueta de 1 byte + desplazamiento de marca de tiempo de 4 bytes + longitud del cuerpo de 4 bytes + cuerpo variable |
| Etiquetas clave | HEAP DUMP (0x0C), HEAP DUMP SEGMENT (0x1C), cadenas UTF8, registros LOAD CLASS |
| Android HPROF | Utiliza la extensión .hprof pero con un formato ligeramente diferente; requiere hprof-conv antes del análisis |
| Activador principal | Flag de la JVM -XX:+HeapDumpOnOutOfMemoryError; también jmap y jcmd bajo demanda |
| Lanzado | Java 1.2 (1998); binary format stabilised with JDK 1.6 |
| Última versión | HPROF binary format 1.0.2 (JDK 6+) |
| Especificación | docs.oracle.com |
Conversiones de HPROF
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos HPROF.