Qu'est-ce que le format de fichier HPROF ?
Les fichiers avec l'extension .hprof contiennent des dumps de la mémoire du tas pour les programmes s'exécutant sur la Java Virtual Machine (JVM). Les fichiers .hprof sont générés par l'agent de profilage HPROF intégré au JDK. Le format est binaire et peut devenir très volumineux - jusqu'à plusieurs Go - proportionnellement à la taille du tas de la JVM au moment de la capture. En tant qu'artéfact de diagnostic, un fichier .hprof peut être supprimé en toute sécurité sans affecter les performances de l'application.
Génération de fichiers .hprof. Les fichiers .hprof sont généralement générés lors d'erreurs de mémoire Java. Le déclencheur le plus courant est une OutOfMemoryError : l'ajout de l'argument JVM -XX:+HeapDumpOnOutOfMemoryError force l'environnement d'exécution à écrire un dump automatiquement en cas d'échec. Des dumps peuvent également être créés à la demande avec jmap -dump:format=b,file=heap.hprof <pid> ou jcmd <pid> GC.heap_dump. Des fichiers de dump mémoire peuvent aussi être créés automatiquement lors d'une terminaison brutale de la JVM. Les appareils Android produisent également des fichiers .hprof, mais dans un format interne légèrement différent qui nécessite une conversion avec hprof-conv avant que les outils Java standard ne puissent les lire.
Analyse des fichiers .hprof - problèmes de mémoire applicative. Les fichiers .hprof peuvent être analysés avec Eclipse Memory Analyzer Tool (MAT), une application graphique open-source hébergée par la Fondation Eclipse. MAT peut importer des fichiers .hprof et les analyser pour détecter les erreurs OOM (Out of Memory), identifier les fuites de mémoire et aider à optimiser l'utilisation de la mémoire de l'application. VisualVM, fourni avec le JDK, est un autre analyseur largement utilisé. Pour le profilage en production, JFR (Java Flight Recorder) est désormais l'approche privilégiée à partir du JDK 11 ; les dumps de tas HPROF restent l'outil standard pour l'analyse des fuites de mémoire.
Sécurité et sûreté
RISQUE : MEDIUMLes fichiers HPROF peuvent contenir des données sensibles : mots de passe, clés privées, jetons d'API ou informations personnelles présentes dans la mémoire du tas de la JVM au moment du dump. Traitez les dumps de tas comme confidentiels ; ne téléchargez pas de dumps de production vers des services d'analyse en ligne sans en avoir préalablement examiné ou anonymisé le contenu. Les fichiers ne sont pas exécutables et ne présentent aucun risque d'exécution de code.
Détails du format
en bref- Android ART Heap Dump - Android Runtime génère des fichiers .hprof avec un format compatible mais non identique ; convertissez-les avec hprof-conv (Android SDK) avant de les ouvrir dans MAT/VisualVM.
Programmes qui ouvrent les fichiers HPROF
Détails techniques
spécifications approfondies| Encodage | Binaire (principal) ; option texte ASCII héritée également prise en charge |
| Ordre des octets | Big-endian |
| Conteneur | Format d'enregistrement binaire séquentiel HPROF |
| Chaîne magique | « JAVA PROFILE 1.0.1 » ou « JAVA PROFILE 1.0.2 » (terminé par un caractère nul à l'offset 0) |
| Version de format 1.0.1 | JDK 1.2-5 ; supporte les tas jusqu'à 2 Go |
| Version de format 1.0.2 | JDK 6+ ; ajoute la balise HEAP DUMP SEGMENT (0x1C) pour les tas de plus de 2 Go |
| Taille de fichier typique | 50 Mo - 20 Go (proportionnelle au tas de la JVM au moment du dump) |
| Structure d'enregistrement | Balise de 1 octet + décalage d'horodatage de 4 octets + longueur du corps de 4 octets + corps variable |
| Balises clés | HEAP DUMP (0x0C), HEAP DUMP SEGMENT (0x1C), chaînes UTF8, enregistrements LOAD CLASS |
| Android HPROF | Utilise l'extension .hprof mais un format légèrement différent ; nécessite hprof-conv avant analyse |
| Déclencheur principal | Argument JVM -XX:+HeapDumpOnOutOfMemoryError ; également jmap et jcmd à la demande |
| Publié | Java 1.2 (1998); binary format stabilised with JDK 1.6 |
| Dernière version | HPROF binary format 1.0.2 (JDK 6+) |
| Spécification | docs.oracle.com |
Conversions HPROF
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers HPROF.