Existe-t-il un outil permettant d'analyser les objets en cours de création entre deux collectes séparées (= nombre d'objets créés et leur type)? Heapdumps ne fonctionne pas vraiment ici car ils effectuent un GC quand ils sont invoqués (ou du moins c'est ce que j'ai observé à chaque fois jusqu'à présent), et je veux voir quels objets sont collectés par le GC, pas quels objets sont laissés après la course du GC, si cela a du sens.Analyse des objets générés par une application Java entre les GC
4
A
Répondre
2
Tout d'abord, lorsque vous observez toujours une collection d'ordures complète avant chaque décharge de tas, vous avez probablement appelé comme ceci:
jmap -histo:live $PID
Si tel est le cas, il suffit de laisser le :live
, qui supprimera les déchets explicites collection.
En outre, la machine virtuelle Java Sun connaît les options de la ligne de commande suivante:
-XX:+PrintClassHistogramBeforeFullGC -XX:+PrintClassHistogramAfterFullGC
Ce devrait être à peu près ce que vous voulez.
0
Si vous avez besoin de savoir quels objets sont collectés par GC, le 'Unreachable objects histogram' de Eclipse Memory Analyzer peut vous aider.
Questions connexes
- 1. Restriction des appels API sortants générés par une application Rails
- 2. Communication efficace entre les objets Java
- 3. Comprendre les journaux de GC de Java
- 4. Sérialisation avec des objets générés subsoniques
- 5. Que faire avec les fichiers XML générés par mon application?
- 6. Gestion des événements sur les objets JavaScript générés dynamiquement
- 7. Objets de valeur générés automatiquement
- 8. Java GC Arrêtez et copiez
- 9. java GC nom 'MarkSweepCompact'
- 10. Authentification entre une application java et .net
- 11. Meilleur GC pour Java démon
- 12. Est-il acceptable de stocker des objets volumineux (composant java par exemple) dans une variable Application?
- 13. Java GC: PSYoungGen augmente de 4 Go après GC complet
- 14. référençant des objets java sur une carte triée par index?
- 15. Comment contrôler l'utilisation de la mémoire des processus générés par une machine virtuelle Java
- 16. Analyse de virus dans une application Web Java?
- 17. Comment communiquer entre des objets
- 18. Passage d'objets entre différentes fenêtres dans une application d'application Java
- 19. Fichiers temporaires massifs générés par application - ASP.NET MVC/IIS 6
- 20. Quelle est la différence entre les objets Session et Application?
- 21. Fusionner des fichiers générés par GWT
- 22. Récupère les valeurs des contrôles générés par js, côté serveur
- 23. Manière correcte de passer des objets Entity entre les calques?
- 24. Ajouter une citation dans les liens générés par javascript
- 25. Comment partager du code entre une application Web Java et une application Java normale
- 26. Profilage Java - comment puis-je obtenir une méthode par analyse de méthode de mon application?
- 27. Les formulaires générés par admin dans Django
- 28. Comparaison entre les objets Javascript
- 29. Java -verbose: gc Implications de performance?
- 30. Quelle est la relation entre GC, Finalize() et Dispose?
Pour certains objets, je remplace la méthode de finalisation et j'ajoute une instruction d'impression qu'elle est gérée. Je la trouve utile quand je suspecte certains objets. Certainement Pas utile s'il y en a beaucoup. – Inv3r53
voulez-vous dire quelles instances spécifiques sont collectées et quand ou combien d'instances de chaque classe sont collectées sur des événements GC spécifiques ou autre chose? et quelle JVM? Je ne suis pas au courant d'un moyen de le faire avec hotspot mais ISTR jrockit (via le centre de commande) rend compte de ce qui est collecté à chaque fois. – Matt