Mit der Funktion Speicherverbrauch können Sie sich den Speicherverbrauch im Debugger anzeigen lassen. Außerdem haben Sie die Möglichkeit, Speicherabzüge zu speichern und mit dem Memory Inspector zu analysieren.
Um den Speicherverbrauch aufzurufen, wählen Sie Springen →Zustandsanzeigen →Speicherverbrauch.
Die Speicherverbrauchsanzeige umfasst folgende Registerkarten:
...
Folgende Speicherverbrauchsangaben in Byte werden angezeigt:
● Allokierter Speicher
Angeforderter Speicher im Roll- oder Heap-Speicher
● Benutzter Speicher
Von Daten belegter Speicher im Roll- oder Heap-Speicher
● Heap-Speicher
Privater Speicher
● Roll-Speicher
● Short-Speicher
Speicher zum Ablegen von Zwischenergebnissen
● Paging-Speicher
Weitere Informationen über Speichertypen finden Sie unter Virtueller Adressraum eines Workprozesses.
Auf dieser Registerkarte werden alle verwendeten Datenobjekte sortiert nach gebundenem Speicher aufgelistet. Die Liste wird automatisch aktualisiert.
Für jedes Datenobjekt werden folgende Informationen angezeigt:
● Bezeichner, Art und Zusatzinformation
● Gebundener allokierter Speicher und gebundener benutzter 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 allokierter Speicher und referenzierter benutzter Speicher
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.
● Sharing
Dieses Ankreuzfeld ist markiert, falls Sharing für interne Tabellen und Strings nach Zuweisungen aktiv ist.
● SZK
Diese Spalte gibt an, ob eine interne Tabelle, ein Objekt oder ein anonymes Datenobjekt Teil einer starken Zusammenhangskomponente ist. Durch Doppelklick können Sie die entsprechende SZK anzeigen.
Folgende Funktionen stehen auf der Registerkarte Speicherverbrauch – Ranglisten zur Verfügung.
● Einstellungen ändern
Um diese Funktion zu nutzen, wählen Sie mit dem Quick-Info-Text Einstellungen ändern.
Sie gelangen auf ein Dialogfenster, auf dem Sie folgende Einstellungen vornehmen können:
○ Sie können die angezeigten Datenobjekte auswählen, indem Sie die folgenden Ankreuzfelder markieren:
■ Interne Tabellen
■ Strings
■ Objekte
■ Anonyme Datenobjekte
○ Sie haben die Möglichkeit, (mit CREATE DATAerstellte) Objekte und anonyme Datenobjekte nach Typen und Klassen zu aggregieren oder keine Aggregation vorzunehmen.
Hierbei werden der statische Speicher und der verbrauchte Speicher der einzelnen Objekte zusammengezählt. Diese Funktion ist dann hilfreich, falls es zu einer Klasse oder einem Datentyp sehr viele Instanzen mit jeweils geringem Speicherbedarf gibt.
○ Sie können die Datenobjekte nach gebundenem Speicher oder nach referenziertem Speicher sortieren.
○ Sie können die Datenobjekte automatisch oder nur auf Anforderung aktualisieren lassen.
○ Sie können die Anzahl der Listeneinträge einschränken.
● Referenzen finden
Um diese Funktion zu nutzen, wählen Sie mit dem Quick-Info-Text Referenzen finden.
Es werden alle Referenzen auf ein Objekt, ein anonymes Datenobjekt, einen String oder eine interne Tabelle aufgelistet.
Insbesondere werden bei Strings und internen Tabellen, für die nach Zuweisungen Sharing aktiv ist, alle Variablen angezeigt, über die der gemeinsame Datenbereich adressiert wird. Dazu gehören auch Variablen anderer ABAP-Programme im gleichen internen Modus, die auf Strings und interne Tabellen zugreifen, die über DATA ... COMMON PART deklariert wurden.
● Instanzliste
Diese Funktion ist nur nach einer Aggregation verfügbar.
Um diese Funktion zu nutzen, wählen Sie mit dem Quick-Info-Text Instanzliste.
Es werden alle Instanzen einer Klasse oder eines Datentyps angezeigt.
● Sichern als lokale Datei
Um diese Funktion zu nutzen, wählen Sie mit dem Quick-Info-Text Sichern als lokale Datei
Sie können einen bestimmten Ausschnitt der Rangliste im Excel-Format als lokale Datei auf dem Präsentationsserver sichern.
Es wird eine Rangliste des Speicherverbrauchs aller starken Zusammenhangskomponenten (SZK) des aktuellen internen Modus angezeigt, wobei die Sortierung nach gebundenem Speicher erfolgt. Die Liste umfasst nur diejenigen SZKs, die aus mindestens zwei Elementen bestehen.
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.
Neben dem gebundenen und referenzierten allokierten und benutzten Speicher werden folgende Informationen für SZKs angezeigt:
● SZK-ID
● Anzahl Knoten
Diese Spalte gibt die Anzahl der Instanzen einer Klasse, eines Datentyps oder der Elemente einer SZK an.
Sie erscheint auch in der Registerkarte Speicherverbrauch – Ranglisten nach einer Gruppierung.
Folgende Funktionen stehen auf der Registerkarte Speicherverbrauch – SZK zur Verfügung.
● Einstellungen ändern
Um diese Funktion zu nutzen, wählen Sie mit dem Quick-Info-Text Einstellungen ändern.
Sie gelangen auf ein Dialogfenster, auf dem Sie folgende Einstellungen vornehmen können:
○ Sie können die Datenobjekte nach gebundenem Speicher oder nach referenziertem Speicher sortieren.
○ Sie können die Datenobjekte automatisch oder nur auf Anforderung aktualisieren lassen.
○ Sie können die Anzahl der Listeneinträge einschränken.
● Referenzen finden
Um diese Funktion zu nutzen, wählen Sie mit dem Quick-Info-Text Referenzen finden.
Es werden alle Referenzen auf SZKs aufgelistet.
● Knoten-Liste
Um diese Funktion zu nutzen, wählen Sie mit dem Quick-Info-Text Knoten-Liste.
Es werden alle Elemente einer SZK angezeigt.
Sie können die Speicheranzeige für einzelne Objekte und Datenobjekte aktivieren bzw. deaktivieren, indem Sie Einstellungen → Speicheranzeige ein/aus wählen. Die aktuellen Speicherwerte werden in der Einzelanzeige des jeweiligen Objekts oder Datenobjekts angezeigt.