J'ai besoin d'un instantané de la mémoire à l'apogée de l'utilisation de la mémoire de mon application - existe-t-il un moyen facile d'y parvenir?Comment puis-je obtenir un instantané de l'utilisation maximale de la mémoire de JVisualVM?
merci
J'ai besoin d'un instantané de la mémoire à l'apogée de l'utilisation de la mémoire de mon application - existe-t-il un moyen facile d'y parvenir?Comment puis-je obtenir un instantané de l'utilisation maximale de la mémoire de JVisualVM?
merci
Uh? À moins que vous ne puissiez dire quantitativement quand ce pic se produit, comment voulez-vous que cela soit mis en œuvre? Si chaque point dans le temps peut être l'état que vous voulez sauvegarder, et qu'il n'y a aucun moyen de le savoir à l'avance, il devrait sauvegarder un instantané complet pour tous les points. Cela semble dur.
Une alternative à JVisualVM serait de prendre votre fichier native_stderr.log et de l'ouvrir au IBM's Pattern Modeling and Analysis Tool for Java Garbage. Vous seriez en mesure de voir rapidement le point le plus élevé auquel votre application utilise l'espace de tas.
Surveiller l'application avec VisualVM/JConsole. quand vous voyez le pic faire un tas de tas. Une autre façon serait (si vous ne voulez pas surveiller) pour réduire le Xmx à quelque chose que vous savez avec certitude qu'il va lancer une exception de mémoire insuffisante. Et activer le drapeau -XX: + HeapDumpOnOutOfMemoryError
si (pic actuel> pic jusqu'à présent) écraser l'instantané // pas dur est-ce? – MalcomTucker
@MalcolmTucker: Donc, si vous faites une opération très coûteuse (car je suppose que l'état complet d'une machine virtuelle est) chaque fois que cela est vrai, et il y a par exemple une croissance * maximale, elle se déclenchera plusieurs fois. Et bien sûr, il y a aussi des minima locaux. – unwind