Bonjour,
Je cherche un moyen de récupérer la valeur maximale atteinte par la heap memory pendant l'exécution d'un programme java.
Ceci dans le but de comparer la conso mémoire de plusieurs versions du programme.
Merci.
Bonjour,
Je cherche un moyen de récupérer la valeur maximale atteinte par la heap memory pendant l'exécution d'un programme java.
Ceci dans le but de comparer la conso mémoire de plusieurs versions du programme.
Merci.
Est ce ceci que tu recherche ?
Attention tout de même. Ce qui est généralement interessant de connaitre ce n'est pas la taille max de la heap mais c'est généralement ce qui reste dans la heap après passage du GC (te donnant donc l'empreinte des objets qui ne sont pas libéré).
Merci de ta réponse,
J'avais trouvé ce moyen pour connaitre à l'instant t la consommation de mémoire, mais ce que je souhaite c'est connaitre une fois le programme terminé, quel a été le pic de heap.
Les valeurs que l'on pourrait recueillir à la fin ne sont pas les maximums puisque le garbage collector peut réduire la valeur de la heap en cours d'exécution.
Je me demandais si cette information était enregistrée quelque part par la jvm ou bien s'il fallait utiliser un outils pour monitorer le process et qui permettrait de conserver la valeur recherchée à la fin.
Il me semble que tu as bien le max (MemoryUsage.getMax). Tu peux donc y accéder a la sortie du programme (par exemple dans un bloc finally de ton main) pour avoir ce qui t'interesse.
Sinon l'option "-XX:+PrintGCDetails" de la JVM Sun peut également t'interesser.
Ca te donnera des détails dans la console sur le fonctionnement du GC.
Partager