Show TOC

SpeicherverbrauchLocate this document in the navigation structure

Verwendung

Übersichten über Speicherverbräuche

Durch Wahl des Menüs Anfang des Navigationspfads Springen Nächster Navigationsschritt Zustandsanzeigen Nächster Navigationsschritt Speicherverbrauch Ende des Navigationspfads wird ein Tabstrip mit folgenden Reitern angezeigt:

  • Speicherverbrauch - gesamt

  • Speicherverbrauch - Rangliste

  • Speicherverbrauch - SZK (Starke Zusammenhangskomponenten)

    Hinweis

    Neben der direkten Anzeige des Speicherverbrauchs im Debugger mit der Funktion Speicherverbrauch bietet die Speicheranalyse die Möglichkeit, Speicherabzüge abzuspeichern und mit dem Memory Inspector zu analysieren.

Speicherverbrauchsanzeigen

Speicherverbrauch - gesamt

Der Speicherverbrauch folgender Speicherbereiche wird in Bytes angezeigt (siehe Virtueller Adressraum eines Workprozesses):

Heap-Speicher (privater Speicher)

Roll-Speicher

  • Benutzter Speicher (im Roll- oder Heap-Speicher mit Daten belegter Speicher)

  • Bereits allokierter Speicher (im Roll- oder Heap-Speicher bereits angeforderter Speicher)

  • Short-Speicher (Speicher für Zwischenergebnisse, zum Beispiel aus dem Dynpro, der automatisch nach jedem Dialogschritt abgeräumt wird.)

Paging-Speicher

Speicherverbrauch - Rangliste

Im Standard wird eine Liste aller verwendeten Datenobjekte angezeigt, sortiert nach gebundenem Speicher, die automatisch aktualisiert wird.

Speicherverbrauch - SZK

Alle dynamischen Objekte (interne Tabellen, Strings, mit CREATE OBJECT erzeugte Objekte, mit CREATE DATA erzeugte anonyme Datenobjekte) eines internen Modus bilden die Knoten eines gerichteten Graphen, dessen Kanten die dazugehörigen Referenzen sind. Für die Analyse des Graphen ist es wichtig, die starken Zusammenhangskomponenten (Abkürzung SZK) zu kennen. Eine SZK ist durch folgende Eigenschaft charakterisiert: Für je zwei Elemente A und B einer SZK existiert ein Pfad im Objektgraph von A nach B und von B nach A. Ein Pfad besteht immer aus mehreren zusammenhängenden Kanten.

Es wird eine Rangliste des Speicherverbrauchs aller SZK des aktuellen internen Modus angezeigt, wobei die Sortierung wahlweise nach referenziertem oder gebundenem Speicher erfolgt. Die Liste umfasst nur diejenigen SZK, die aus mindestens zwei Elementen bestehen.

Bedeutung der Spalten für Einzelanzeigen, Ranglisten und SZK

Gebundener Speicher

Speicher, der beim vollständigen Löschen (bei internen Tabellen mit FREE) frei wird. Zum angegebenen Objekt wird auch der Speicher derjenigen Objekte gezählt, die exklusiv durch das vorliegende Objekt über Referenzen am Leben gehalten werden. Enthält z.B. eine interne Tabelle Referenzen auf Datenobjekte exklusiv und können diese nach dem Löschen der internen Tabelle vom Garbage-Collector freigegeben werden, so tragen die so referenzierten Objekte mit zum Gebundenen Speicher bei.

Referenzierter Speicher

Speicher, auf den das Datenobjekt verweist (eventuell über andere Datenobjekte hinweg). Dieser Speicher wird beim Löschen des Datenobjekts nicht unbedingt freigegeben, da noch andere Datenobjekte auf den Speicher verweisen können. Der referenzierte Speicher ist immer größer oder gleich dem gebundenen Speicher.

Benutzter Speicher

Speicher, der mit Nutzdaten belegt ist.

Allokierter Speicher

Speicher, der vom System reserviert wurde. Der allokierte Speicher ist immer größer oder gleich dem benutzten Speicher.

Anzahl Instanzen

Diese Spalte erscheint bei Ranglisten nur nach einer Gruppierung und bei SZK. Sie gibt die Anzahl der Instanzen einer Klasse, eines Datentyps oder der Elemente einer SZK an.

Sharing

Diese Spalte betrifft nur interne Tabellen und Strings. Sie ist markiert, falls für diese nach Zuweisungen Sharing aktiv ist.

SZK-Markierung

Falls eine interne Tabelle, ein Objekt oder ein anonymes Datenobjekt Teil einer SZK ist, erscheint in der Spalte rechts eine Drucktaste, deren Auswahl die entsprechende SZK anzeigt.

Zusatzfunktionen für Ranglisten und SZK

Einstellungen

Durch Betätigung der Ikone Einstellungen ändern wird ein Fenster angezeigt, in dem die Sortierreihenfolge (nach gebundenem oder referenzierten Speicher), das Aktualisierungsverfahren (automatisch oder manuell) und die Zahl der Einträge ausgewählt werden können. Für die Rangliste des Speicherverbrauchs kann zuätzlich die Art der Datenobjekte, deren Speicherverbrauch angezeigt wird, ausgewählt werden. Ferner können Objekte und anonyme (mit CREATE DATA erzeugte) Datenobjekte in der Rangliste nach ihren Klassen oder Datentypen gruppiert werden. Hierbei wird der Speicherbedarf der einzelnen Objekte und einmalig der statische Speicher der Klasse zusammengezählt. Diese Funktion ist dann sinnvoll, falls es zu einer Klasse oder einem Datentyp sehr viele Instanzen mit jeweils geringem Speicherbedarf gibt.

Instanz-Liste

Diese Funktion steht bei Ranglisten nur nach einer Gruppierung zur Verfügung. Durch Betätigung der Ikone Instanz-Liste werden alle Instanzen einer Klasse, eines Datentyps oder alle Elemente einer SZK aufgelistet.

Referenzen finden

Durch Betätigung der Ikone Referenzen finden werden alle Referenzen auf ein Objekt, ein anonymes Datenobjekt, einen String, eine interne Tabelle oder eine SZK angezeigt. 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 Variable anderer ABAP-Programme, des gleichen internen Modus, die auf über DATA ... COMMON PART deklarierte Strings und interne Tabellen zugreifen.

Sichern als lokale Datei

Diese Funktion steht nur bei Ranglisten zur Verfügung. Mit ihr kann ein wählbarer Ausschnitt der Rangliste im Excel-Format in eine lokale Datei auf dem Präsentationsserver gespeichert werden.

Speicheranzeige für einzelne Objekte und Datenobjekte

Durch Wahl des Menüs Anfang des Navigationspfads Einstellungen Nächster Navigationsschritt Speicheranzeige ein/aus Ende des Navigationspfads wird die Speicheranzeige für einzelne Objekte und Datenobjekte eingeschaltet. Die aktuellen Speicherwerte werden in der Einzelanzeige des jeweiligen Objektes oder Datenobjektes angezeigt. Durch Betätigung der Ikone Referenzen finden werden alle Referenzen auf ein Objekt, ein anonymes Datenobjekt, einen String oder eine interne Tabelle angezeigt. Falls eine interne Tabelle, ein Objekt oder ein anonymes Datenobjekt Teil einer SZK ist, erscheint eine Drucktaste, deren Auswahl die entsprechende SZK anzeigt.

Hinweis

Für interne Tabellen und Strings ist Sharing möglich. Das Sharing wird systemintern über einen Referenzzähler abgebildet. Wenn dieser Zähler den Wert 1 enthält, so ist für die interne Tabelle oder den String kein Sharing aktiv. In diesem Fall wird der Speicherverbrauch dem Knoten zugeschlagen, der diese interne Tabelle oder den String referiert, das heißt, dass die Größe der internen Tabelle oder des Strings im gebundenen Speicher des übergeordneten Knotens enthalten ist.