Speicherverluste können den Durchsatz eines Programms verringern und unter Umständen sogar zu einem Absturz des Programms führen. In Java entstehen Speicherverluste oft, wenn Objekte unangemessen an Referenzen festhalten. Die Perspektive 'Profilermittlung und Protokollierung' umfasst Ansichten, mit denen Sie die Speicherbelegung Ihrer Anwendung analysieren und diese Lecks feststellen können.
Für die Analyse auf Speicherverluste sind folgende Ansichten verfügbar:
Wenn Sie ein Leck gefunden haben, können Sie mit dem Probekit eigene Sonden entwerfen, um bestimmte Objekte, die Verluste verursachen könnten, zu untersuchen.
Wenn Sie Verlustkandidaten schnell erkennen möchten, führen Sie eine Analyse auf Speicherverluste durch. Erstellen Sie dazu ein Profil mit der Profilgruppe 'Analyse auf Speicherverluste'. Die Speicherbelegung können Sie auch untersuchen, wenn Sie für die Profilerstellung die Profilgruppe 'Speicheranalyse' verwenden. Die so ermittelten Daten können Sie im Diagramm der Objektreferenzen und in den Ansichten 'Objektreferenzen' und 'Objektdetails' anzeigen, jedoch nicht zum Generieren einer Liste von Verlustkandidaten verwenden.
Übergeordnetes Thema: Erste Schritte bei der Bestimmung von Laufzeitproblemen
Die Analyse auf Speicherverluste verwendet erweiterte Algorithmen, um anhand eines Vergleichs zweier Heap-Speicherauszüge potenzielle Speicherverluste zu identifizieren. Sie können eine Profilerstellungskonfiguration so definieren, dass Heap-Speicherauszüge manuell oder automatisch zu von Ihnen in der Profilgruppe festgelegten Zeiten erfasst werden.
Gehen Sie wie folgt vor, um eine Verlustanalyse durchzuführen:
Jetzt können Sie Ihren Code modifizieren und Referenzen, die nicht mehr sinnvoll sind, entfernen, damit der Garbage Collector nicht benötigte Objekte erfassen kann. Erstellen Sie erneut ein Profil Ihrer Anwendung, um zu überprüfen, ob Sie das Leck beseitigt haben und ob weitere Lecks vorhanden sind.
Zusätzliche Informationen hierzu finden Sie im Abschnitt Speicherverluste analysieren.
Mit der Profilgruppe 'Speicheranalyse', die den Profiltyp 'Speicherverlustanalyse' enthält, können Sie Objektreferenzen sammeln und Heap-Speicherauszüge anzeigen. Sie können diese Daten in den Ansichten 'Diagramm der Objektreferenzen', 'Objektreferenzen' und 'Objektdetails' anzeigen, jedoch nicht zum Generieren einer Liste von Verlustkandidaten verwenden.
Gehen Sie zum Untersuchen der Speicherbelegung wie folgt vor: