!--a11y-->
Speicheranalyse 
Das Werkzeug Speicheranalyse dient zur Anzeige des aktuellen Speicherverbrauchs. Hierzu bietet das Werkzeug zwei Anzeigebilder mit verschiedenen Informationen. Zwischen beiden Anzeigebildern kann durch Klicken auf die zugehörigen Ikonen umgeschaltet werden.
Im Bild Speichergrößen werden Werte für den internen Modus sowie spezielle Speicherbereiche ausgegeben. Alle Angaben sind in Bytes.
Für den internen Modus wird der
allokierte sowie der tatsächlich benutzte Speicher ausgegeben. Für die
speziellen Speicherbereiche (siehe
Virtueller Adressraum
eines Workprozess) werden folgende Werte ausgegeben:
·
Heap-Speicher
(privater Speicher)
· Short-Speicher (Speicher für Zwischenergebnisse, zum Beispiel aus dem Dynpro, der automatisch nach jedem Dialogschritt abgeräumt wird.)
Im Bild Speicherobjekte wird eine nach der Größe sortierte Rangliste aller Speicherobjekte ausgegeben. Die Anzahl der Einträge in dieser Rangliste kann über das Eingabefeld Einträge verändert werden. Über das Auswahlfeld Sicht lässt sich die Anzeige der Speicherobjekte einstellen. Folgende Sichten sind möglich:
· Speicherobjekte
· Typen
· Aggregate (Zyklen)
In der Sicht Speicherobjekte werden einzelne Speicherobjekte (Klassenobjekte, anonyme Datenobjekte, interne Tabellen und Strings) ausgegeben.
Bei Auswahl der Sicht Typen erfolgt eine Gruppierung von Klassenobjekten und anonymen Datenobjekten zur jeweiligen zugehörigen Klasse beziehungsweise zum zugehörigen Typ. Hierbei wird der gebundene Speicher der Einzelobjekte aufsummiert. Im Fall von Klassen wird zusätzlich der statische Speicher der Klasse berücksichtigt.
Die Sicht Aggregate (Zyklen) fasst ebenfalls einzelne Speicherobjekte zusammen, hier jedoch solche, die Bestandteil einer starken Zusammenhangskomponente (SZK) sind. Eine SZK ist durch folgende Eigenschaft charakterisiert: Für je zwei Elemente A und B einer SZK existiert sowohl ein Pfad im Objektgraph von A nach B als auch von B nach A. Aus dieser Eigenschaft folgt, dass die Elemente einer SZK nur dann vom Garbage Collector gelöscht werden können, wenn alle Referenzen von Außen auf Elemente der SZK gelöscht wurden. SZKs können also als zusammengesetzte Objekte betrachtet werden, die nur im Ganzen gelöscht werden können.
Das Fenster Einstellungen wird über die Werkzeug-Services aufgerufen. Hierüber lässt sich das Verhalten der Speicherobjekt-Ranglisten steuern:
· Filter: bestimmte Arten von Speicherobjekten (interne Tabellen, Strings, Klassenobjekte oder Klassen und Anonyme Datenobjekte oder deren Typen) lassen sich aus der Rangliste herausfiltern.
· Sortierung: Die Rangliste kann nach gebundenem oder referenziertem Speicher sortiert werden.
·
Aktualisierung: Die Aktualisierung der Rangliste kann
automatisch oder auf Anforderung erfolgen. In letzterem Fall wird ein
zusätzlicher Auffrischen-Button
angezeigt.
Neben den Einstellungen bietet das Service-Menü folgende zusätzliche Funktionen:
· Speicherabzug erzeugen: Erzeugen eines Speicherabzugs auf dem Applikationsserver zur späteren Analyse mittels Transaktion S_MEMORY_INSPECTOR.
· Speicherabzüge vergleichen: Start der Transaktion S_MEMORY_INSPECTOR zur Analyse und zum Vergleich von Speicherabzügen.
· Garbage Collector starten: Start des Garbage Collectors