2009-07-29 7 views
2

J'étais curieux au sujet de la sortie de runhprof? Je suis principalement préoccupé par la section de la mémoire. Il semble qu'il y ait plusieurs entrées de la même classe. Pourquoi cela serait-il?Java: pourquoi plusieurs objets apparaissent-ils avec la sortie de runhprof?

Existe-t-il un moyen d'obtenir hprof pour imprimer la quantité de mémoire qu'une classe particulière (les instances de cette classe) doit prendre en mémoire. Une valeur pour chaque classe.

En outre, quels outils utilisez-vous à côté de «chapeau» pour analyser la sortie?

j'ai couru la commande java avec jvm arg:

-Xrunhprof: tas = emplacements, profondeur = 4, format = a, file = prof/hprof_dump.txt

Voici bref extrait de la sortie . Certaines classes sont répertoriées plusieurs fois dans la sortie.

 
SITES BEGIN (ordered by live bytes) Tue Jul 28 19:33:41 2009 
      percent   live   alloc'ed stack class 
rank self accum  bytes objs  bytes objs trace name 
    1 29.75% 29.75% 700080 43755 576000016 36000001 307483 java.lang.Double 
     2 7.13% 36.88% 167840 5245 370432 11576 300993 clojure.lang.PersistentHashMap$LeafNode 
     3 2.09% 38.98%  49296 2054  60048 2502 301295 clojure.lang.Symbol 
     4 2.09% 41.07%  49200 3  49200  3 301071 char[] 
     5 1.33% 42.40%  31344 1306  68088 2837 300998 clojure.lang.PersistentHashMap$BitmapIndexedNode 
     6 1.10% 43.50%  25800 645  25800 645 301050 clojure.lang.Var 
     7 1.05% 44.54%  24624 3  24624  3 301069 byte[] 
     8 0.86% 45.40%  20184 841  49608 2067 301003 clojure.lang.PersistentHashMap$INode[] 
     9 0.78% 46.18%  18304 572  58720 1835 301308 clojure.lang.PersistentList 
     10 0.75% 46.93%  17568 549  17568 549 308832 java.lang.String[] 
     11 0.70% 47.62%  16416 2  16416  2 301036 byte[] 

Répondre

2

Eclipse Memory Analyzer est excellent. Charge très rapidement le fichier de vidage, produit de nombreux rapports sur le tas, vous permet d'interroger le vidage des objets/classes en utilisant un langage de type SQL. Aimer.

+0

le fichier de vidage ou le fichier créé à partir de hprof. –

+0

Devrait être la même chose. –

+0

Oui, je l'ai juste couru. Freaking parfait. Merci. Fonctionne avec des décharges de tas de 1,5 également. –