So finden Sie Speicherverluste mit Visualvm
Ich vermute, wir haben einen großen Speicherverlust in unserem ActiveMQ-Verbindung Brücke - wir sehen typische Speicherleck Muster (app lädt fein, verlangsamt sich, wenn es ausgeführt wird, für längere Zeit oder wird neu gestartet immer und immer wieder über kurze Zeiträume). Ich blickte auf moderne best practices für die Suche nach Java memory leaks und viele Entwickler scheinen aufgegeben zu traditionellen tools wie jhat/jmap anstelle des neuen(er) jvisualvm
.
Beim starten dieses Werkzeugs (und verbringen ein paar Stunden Lesen, über seine tutorial) ich bin in der Lage, nehmen die profiler-snapshots für CPU und Arbeitsspeicher.
Ich bin einfach irgendwie stecken an diesem Punkt - wie kann ich analysieren, diese Schnappschüsse zu identifizieren, die ein Leck? Es gibt eine fülle von Dokumentation gibt es, wie zu verwenden jvisualvm zu produzieren Momentaufnahmen, aber sehr wenig Dokumentation, wie Sie tatsächlich Sinn machen.
Vielen Dank im Voraus.
InformationsquelleAutor der Frage IAmYourFaja | 2012-02-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Memory-leak-Analyse mittels visualvm, ist nicht einfach. Es hat ein tool/plugin namens "sampler". Dies kann verwendet werden, um sample-Speicher oder der cpu. Sie können einen Schnappschuss in regelmäßigen Abständen und suchen Sie nach möglichen Lecks. Hier finden Sie einige details, wie es zu benutzen - Hergestellt aus Schnellsuche
Effektiver Weg, zu erhalten ist ein heap-dump (sagen wir, wenn die Anwendung verlangsamt oder wenn OOM passiert). VisualVM helfen Ihnen bei der heapdump (mit Heap-Dump - auf Monitor tab)
Diese Datei analysiert werden können MATTE- Einige details sind hier bei Wie kann ich analysieren .hprof-Datei? und http://memoryanalyzer.blogspot.in/
InformationsquelleAutor der Antwort Jayan