2016-03-24 7 views
1

Ich lese zwei Kunden-Heapdumps und möchte den nicht erreichbaren Objekten folgen, aber ich sehe nur die Nachricht, die beim Anzeigen der Objekte in der Dominator-Struktur nicht erreichbar ist. Ich kann das Nicht-erreichbare Histogramm trotzdem nicht anzeigen oder den Objekten folgen.Ich bin ein wenig verwirrt darüber, wie Eclipse MAT "Nicht erreichbare" Objekte anzeigt. Ich lese zwei Kundenabladungen und möchte den unerreichbaren Objekten folgen

Ich benutze Eclipse MAT 1.50. The link states:

Memory Analyzer Version 1.1 hat eine Vorliebe Seite Option keep_unreachable_objects auszuwählen.

Ich sehe Objekte als unerreichbar markiert, aber ich kann ihnen nicht folgen. Außerdem sehe ich nicht Java-Grundlagen> Nicht erreichbare Objekte Histogramm Ich habe die Option unter Fenster> Einstellungen> Speicher-Analyzer> halten unerreichbare Objekte. Ich habe MAT nach dem Ändern der Einstellung neu gestartet.

Zum Beispiel, hier ist ein Objekt -

Class Name            | Shallow Heap | Retained Heap 
----------------------------------------------------------------------------------------- 
org.apache.catalina.Session[740] @ 0x7cf807688 Unreachable|  2,976 |   2,976 
----------------------------------------------------------------------------------------- 

Hier ist ein Link, der den Menüpunkt zeigt - http://help.eclipse.org/juno/topic/org.eclipse.mat.ui.help/mimes/threads_overview.png

Meine Fragen:

  • Wie kann ich nicht erreichbar Objekte Histogramm aktivieren?
  • Sollte ich in der Lage sein, der Objektkette zu folgen, oder fehlinterpretiere ich, was ich sehen sollte, wenn ich auf "Nicht erreichbar" schaue?

Ich weiß, ein Fehler vorhanden ist, aber auf der Suche nach Paniermehl

Danke, Rich-

Antwort

0

Die „Keep unerreichbaren Objekten“ Präferenz beim Laden der Halde angewandt werden soll, sollte es keinen Neustart erforderlich oder mehr Konfiguration als das.

Ja, die Java-Grundlagen> Nicht erreichbare Objekte Histogramm Option scheint zu fehlen, aber es gibt einen Link, um auf der Registerkarte Übersicht zuzugreifen.

enter image description here

„Keep unerreichbare Objekte“ scheint Buggy zu sein: es scheint oft viel mehr zu arbeiten, wenn als auf TRUE auf FALSE gesetzt. Wenn Sie also nicht das richtige Ergebnis erhalten, löschen Sie alle temporären Dateien des Speicherauszugs und lassen Sie nur .hprof, setzen Sie die Einstellung auf FALSE und versuchen Sie erneut zu laden/neu zu berechnen.

Um ehrlich zu sein, ist das Histogramm nicht besonders nützlich, aber so sieht es aus (Mat 1.4.0). Grundsätzlich

enter image description here

+0

Danke, Andrew, ich werde Ihre Vorschläge durchgehen und die Frage aktualisieren –

0

, gefolgt Andrew Vorschlag keep_unreachable_objects auf false, neu gestartet MAT Einstellung. Die Leak-Suspects-Tabelle sah sehr unterschiedlich aus und zeigte ein großes Objekt, das wir analysiert haben, um einen möglichen Codierungsfehler zu finden. Der größere beibehaltene Heap für ein Objekt hat mir geholfen, mich auf das Problem zu konzentrieren.Ja, wir haben bei der Überprüfung des Dumps wieder dieselben Daten gesehen, aber jetzt kann ich mit der Arbeit an einem Anwendungsfall beginnen, um den Code zu isolieren, der den Fehler verursacht hat.

Der Übersichtsbildschirm zeigte auch Nicht erreichbare Objekte an, bot jedoch einige Details zum Problem.

Hoffentlich macht das oben genannte einen Sinn.

Danke, Andrew für die Hilfe.

Verwandte Themen