Mit dem Werkzeug Speicheranalyse können Sie sich den aktuellen Grad der Speicherausnutzung anzeigen lassen.
Hierzu bietet das Werkzeug zwei Anzeigebilder mit verschiedenen Informationen.
Um die Speicheranalyse zu öffnen, rufen Sie das Dialogfenster Neues Werkzeug auf und wählen Speicheranalyse.
Die Speicheranalyse umfasst zwei Arbeitsbereiche:
Sie können den Arbeitsbereich Speichergrößen anzeigen, indem Sie das Symbol mit dem Quick-Info-Text Übersicht bzw. die Funktion Speichergrößen wählen.
Folgende Speichergrößen in Byte werden angezeigt:
● Interner Modus
○ Allokierter Speicher
○ Benutzter Speicher
● Spezielle Speicherbereiche
○ Heap-Speicher
Privater Speicher
○ Roll-Speicher
○ Short-Speicher
Speicher zum Ablegen von Zwischenergebnissen
○ Paging-Speicher
Sie können den Arbeitsbereich Speicherobjekte anzeigen, indem Sie Speicherobjekte wählen.
In diesem Arbeitsbereich wird eine nach Größe sortierte Rangliste aller Speicherobjekte angezeigt.
● Mit dem Eingabefeld Einträge können Sie die Anzahl der Einträge eingrenzen.
● Mit der Dropdown-Box Sicht können Sie die Anzeige der Speicherobjekte ändern. Folgende Sichten stehen zur Verfügung:
○ Speicherobjekte
In der Sicht Speicherobjekte können Sie sich einzelne Speicherobjekte wie Klassenobjekte, anonyme Datenobjekte, interne Tabellen und Strings ansehen.
○ Typen
In der Sicht Typen werden die Klassenobjekte und anonymen Datenobjekte in Klassen und Typen eingeteilt. Die Speicherausnutzung wird aufsummiert. Im Fall von Klassen wird zusätzlich der statische Speicher der Klasse berücksichtigt.
○ Aggregate (Zyklen)
Die Sicht Aggregate (Zyklen) fasst einzelne Speicherobjekte zusammen, die Bestandteil einer starken Zusammenhangskomponente sind.
Eine starke Zusammenhangskomponente zeichnet sich dadurch aus, dass für je zwei Elemente A und B ein Pfad im Objektgraph von A nach B als auch von B nach A existiert. Daher können die Elemente einer starken Zusammenhangskomponente nur vom Garbage Collector gelöscht werden, vorausgesetzt, dass alle Referenzen von außen auf Elemente der Komponente gelöscht wurden. Starke Zusammenhangskomponenten können als zusammengesetzte Objekte betrachtet werden, die nur im Ganzen gelöscht werden können.
● In allen Sichten werden folgende Informationen für jedes Speicherobjekt angezeigt:
○ Gebundener Speicher und Belegungsgrad gebundener Speicher
Gebundener Speicher wird beim vollständigen Löschen (bei internen Tabellen mit FREE) frei. Zum gebundenen Speicher eines Objekts gehört auch der Speicher, der von Objekten verbraucht wird, die nur als Referenzen auf das betreffende Objekt vorhanden sind. Enthält z.B. eine interne Tabelle exklusiv Referenzen auf Datenobjekte, die vom Garbage Collector nach dem Löschen der Tabelle freigegeben werden können, tragen die referenzierten Objekte mit zum gebundenen Speicher bei.
○ Referenzierter Speicher und Belegungsgrad des referenzierten Speichers
Hier handelt es sich um den Speicher, auf den das Datenobjekt verweist (eventuell über andere Datenobjekte hinweg). Dieser Speicher wird beim Löschen des Datenobjekts nicht freigegeben, wenn noch andere Datenobjekte auf den Speicher verweisen. Der referenzierte Speicher ist immer größer oder gleich dem gebundenen Speicher.
Der Belegungsgrad des gebundenen und referenzierten Speichers wird in Prozent angegeben.
Sie können zusätzliche Services des Speicheranalysewerkzeugs nutzen, wenn Sie mit dem Quick-Info-Text Services des Werkzeugs wählen.
Sie gelangen auf ein Dialogfenster, auf dem folgende werkzeugspezifische Services angeboten werden:
● Einstellungen
Mit diesem Service steuern Sie das Verhalten der Speicherobjektranglisten.
Sie können folgende Einstellungen vornehmen:
○ Bestimmte Speicherobjekttypen aus den Ranglisten herausfiltern
○ Rangliste nach gebundenem oder referenziertem Speicher sortieren
○ Ranglisten automatisch oder auf Anfrage aktualisieren
● Speicherabzug erzeugen
Mit diesem Service erstellen Sie einen Speicherabzug, den Sie mit dem Memory Inspector analysieren können.
● Speicherabzüge vergleichen
Mit diesem Service können Sie Speicherabzüge mit Hilfe des Memory Inspector vergleichen.
Der Garbage Collector löscht alle Objekte, auf die keine Referenzen mehr zeigen. Der Garbage Collector wird periodisch von der ABAP Laufzeitumgebung gestartet. Verwenden Sie diese Funktion wenn Sie den Garbage Collector manuell starten wollen.