Wie kann ich sehen, was ist in meiner heap in Java?
Habe ich es geschafft, ein memory 'Leck' in einer java-Anwendung, die ich entwickle. Beim ausführen von meinem JUnit-test-suite, die ich zufällig bekommen, out-of-memory-Ausnahmen (java.lang.OutOfMemoryError).
Welche tools kann ich nutzen, um zu prüfen, heap meiner java-Anwendung, um zu sehen, was alle meine Haufen, so dass ich arbeiten kann, aus was halten Referenzen auf Objekte, die sollten in der Lage sein werden, Müll gesammelt.
InformationsquelleAutor der Frage Free Wildebeest | 2008-09-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
VisualVM ist enthalten in den neuesten Versionen von Java. Sie können diese verwenden, um erstellen Sie einen heap-dump, und der Blick auf die Objekte.
Alternativ können Sie auch ein heapdump commandine mit jmap (in deinem jdk/bin Verzeichnis):
Können Sie sogar nutzen diese, um eine schnelle Histogramm aller Objekte
Kann ich nur empfehlen, Eclipse Memory Analyzer (http://eclipse.org/mat) für die erweiterte Analyse von heap dumps. Es ermöglicht Ihnen, genau herauszufinden, warum ein bestimmtes Objekt oder einen Satz von Objekten, die lebendig ist. Hier ein blog-Eintrag zeigen Sie, was Memory Analyzer tun können: http://dev.eclipse.org/blogs/memoryanalyzer/2008/05/27/automated-heap-dump-analysis-finding-memory-leaks-with-one-click/
InformationsquelleAutor der Antwort Tom
Wenn Sie brauchen etwas, das frei ist, versuchen VisualVM
Aus der Projekt-Beschreibung:
InformationsquelleAutor der Antwort André
Dies ist eine ziemlich alte Frage. Viele Menschen haben vielleicht begonnen mit IntelliJ da es ursprünglich war, beantwortet. IntelliJ hat eine plugin, das anzeigen der Speichernutzung genannt JVM Speicher-Debugger Anzuzeigen.
InformationsquelleAutor der Antwort mkasberg
Einen profiler verwenden, wie JProfiler oder YourKitProfiler
InformationsquelleAutor der Antwort skaffman
JProfiler funktionierte sehr gut für mich....
http://www.ej-technologies.com/products/jprofiler/overview.html
InformationsquelleAutor der Antwort cagcowboy
Verwenden Sie die Eclipse Memory Analyzer
Gibt es kein anderes tool, ich bin mir dessen bewusst, jedes tool, das kommt nahe der Funktionalität und Leistung und Preis (kostenlos und open source) bei der Analyse von heap dumps.
InformationsquelleAutor der Antwort kohlerm
Wenn Sie ein system unterstützt, die die GTK-Sie könnten versuchen, mit JMP.
InformationsquelleAutor der Antwort Free Wildebeest
Können Sie versuchen, das Speicher-Leck-Detektor ist Teil des JRockit Mission Control tools suite. Es ermöglicht Ihnen, zu überprüfen heap, während die JVM läuft. Sie nicht brauchen, um Schnappschüsse zu machen die ganze Zeit. Sie können einfach online-Verbindung zu der JVM und dann sehen, wie die heap-änderungen zwischen den garbage collections. Sie können auch überprüfen Sie die Objekte, Folgen Verweise grafisch und erhalten Sie stack-traces von wo aus Sie Ihre Anwendung derzeit zum zuordnen von Objekten. Hier ist eine kurze Einführung.
Das tool ist kostenlos für die Entwicklung und Sie können es herunterladen hier.
InformationsquelleAutor der Antwort Kire Haglin