Ansicht
Dokumentation

CL_ABAP_MEMORY_UTILITIES - Hilfsmittel zur ABAP-Speicherverwaltung

CL_ABAP_MEMORY_UTILITIES - Hilfsmittel zur ABAP-Speicherverwaltung

TXBHW - Original Tax Base Amount in Local Currency   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Diese Klasse stellt Methoden zur Verfügung, um während der Laufzeit eines Programmes oder Transaktion Informationen über den aktuellen Speicherverbrauch zu erhalten.

  • WRITE_MEMORY_CONSUMPTION_FILE

Diese Methode erzeugt einem Speicherabzug. Mit dem Programm BC_MEMORY_INSPECTOR kann dieser Speicherabzug ausgewertet werden.

  • GET_MEMORY_SIZE_OF_OBJECT

Mit dieser Methode kann man die Größe eines dynamisch erzeugten Objektes, d.h. Strings, Tabellenrumpfes (interne Tabelle), Instanzen von Klassen (Objekt) und anonyme Datenobjekte, berechnen. Die Objekte werden durch eine Referenz in dem Importing-Paramter OBJECT spezifiziert. Es werden der gebundene Speicher, d.h der Speicher, der beim Löschen des Objektes minimal freigegeben wird, sowie der referenzierte Speicher, d.h. der Speicher, der beim Löschen maximal freigegeben wird, berechnet. Da interne Tabelle und Strings i.a. mehr Speicher allokiert haben als aktuell benutzt werden, so werden die Wert gebundener und referenzierter Speicher nochmals in 'allokiert' und 'benutzt' unterteilt. Die dynamisch erzeugten Objekte bilden einen gerichteten Graphen, der die dynamisch erzeugten Objekte als Knoten und die Referenzen auf die dynamisch erzeugten Objekte als Kanten enthält. Bei der Berechnung des gebundenen Speichers wird die Größe eines referierten Knotens (Vaterknoten zeigt auf Kindknoten) der Größe des Vaterknotens genau dann hinzugerechnet, wenn der Kindknoten ein Tabellenrumpf (interne Tabelle) oder ein String mit Referenzzähler eins ist.

Falls das Objekt in einer nicht-trivialen starken Zusammenhangskomponente des Objektgraphes liegt, so wird auch die Größe dieser Zusammenhangskomponente mit ausgegeben. Ob die Werte gefüllt sind, hängt an dem Parameter IS_PART_OF_NON_TRIVIAL_SZK.

Falls nicht mehr genügend Speicher vorhanden ist, um den Objektgraphen zu durchlaufen, wird ein zweiter Versuch gestart, bei dem weniger Speicher gebraucht wird, aber als Ergebnis stehen dann nur noch die Werte BOUND_ALLOC_SIZE und BOUND_USED_SIZE zur Verfügung. In diesem Fall ist LOW_MEM auf 'X' gesetzt.

Falls auch für diesen eingeschränkten Modus nicht genügend Speicher zur Verfügung steht, so werden die Parameter BOUND_ALLOC_SIZE, BOUND_USED_SIZE, REFERENCED_SIZE_ALLOC und REFERENCED_SIZE_USED auf -1 gesetzt.

Falls das Objekt im Shared Memory liegt, so ist IS_IN_SHARED_MEMORY mit 'X' belegt.

  • DO_GARBAGE_COLLECTION

Diese Methode ruft den Garbage Collector auf. Der Garbage Collector gibt nicht-referenzierten (und daher nicht mehr benötigten) Speicher frei. Der Garbage Collector wird in gewissen Abständen automatisch aufgerufen. In manchen Situationen kann es vorteilhaft sein, nicht auf den nächsten automatischen Aufruf zu warten, sondern den Garbage Collector direkt aufzurufen, wozu diese Methode dient.

Beziehungen

Beispiel

Hinweise

Weiterführende Informationen






CPI1466 during Backup   Addresses (Business Address Services)  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 3399 Date: 20240426 Time: 121345     sap01-206 ( 91 ms )