Displaying Memory Snapshots
In the Initial Screen of the Memory Inspector, you can choose Display (t_0) or Display (t_1) to display a memory snapshot opened as (t_0) or (t_1). A number of functions are available in the display area.
In the overview, the contents of a Memory Snapshot are displayed sorted by object type. The system displays individual values for each object types. The following object types exist:
· Programs
Initial static memory request of a program. This comprises the memory area for the global data of a program; in the case of deep data types, only the references for the individual data objects are stored in this area.
· Classes
Initial static memory request of a class. This comprises the memory area for the static attributes of the class without constants; in the case of deep data types, only the references for the individual data objects are stored in this area.
Dynamic memory request of a class – that is, the memory occupied by deep static attributes of the class and the memory occupied by instances of the class.
Below the classes, you can display the instances of a class with its memory requirement.
Below the instances, you can display the references that point to an instance (including references from the internal event handler table).
· Table bodies
Dynamic memory area occupied by internal tables. Only one table body exists for internal tables that are shared after an assignment. The system displays all table bodies of the internal session. Internal tables do not have table bodies directly after their creation and the use of the FREE statement.
Below a table body, you can display the internal references to a table body. Several references can point to one table body, as a result of: Sharing after assignments, pass by reference to procedures, declarations in interface work areas (DATA ... COMMON PART).
In the case of nested tables, the memory consumption of the subordinate tables is added to the memory consumption of the superordinate tables.
· Strings
Dynamic memory area occupied by strings. Only one memory area exists for strings that are shared after an assignment. The system displays all strings of the internal session. Empty strings do not occupy any dynamic storage space.
Below a string, you can display its internal references. Several references can point to one string, as a result of: Sharing after assignments, pass by reference to procedures, declarations in interface work areas (DATA ... COMMON PART).
· Types of anonymous data objects
Dynamic memory area occupied by anonymous data objects of a specific type.
Below the types, the anonymous data objects themselves are displayed.
Below an anonymous data object, you can display the references that point to the anonymous data object.
The Ranking List displays the contents of a memory snapshot sorted by the memory consumption of the contained memory objects. Type-like entities such as classes and types of anonymous memory objects are not included in this list, only their instances are. Furthermore, the ranking list does not include any programs.
For each memory object, the list shows the values of bound allocated, bound used, referenced allocated, and referenced used memory. If a memory object is part of an object cycle (SCC), the total memory of the object cycle is displayed in the columns SCC (Allocated) and SCC (Used) (SCC stands for strongly connected component; see Memory Use). Otherwise, the value is zero. Only objects that can reference other memory objects can be part of an object cycle (that is, internal tables and class instances).
Die Ranking List by Type is similar to the ranking list. However, the former displays the classes and types of anonymous data objects at the top level and not the class instances and anonymous data objects themselves. Therefore, you can see the memory consumption of an entire class, including all its instances, in relation to the total memory consumption, for example.
As in the overview, you can display the instances for a class below this class and the data objects themselves below the types of anonymous data objects.
The view Object Cycles (SCC) displays all non-trivial object cycles (that is, all cycles that contain more than one object). This view shows the number of contained memory objects and the occupied memory for each cycle. Below the cycles, you can display the contained objects.
When you create a memory snapshot, object cycles are recognized dynamically and numbered consecutively. This description is not stable. Therefore, you cannot compare object cycles from two different memory snapshots.
More information on object cycles (SCC) is available under Memory Use.
The System Memory view displays the memory consumption of internal services within the ABAP runtime environment. The actions of ABAP programmers have no immediate influence on these values.