The memory requirement for a deep data object consists of constantly required memory for the reference and dynamically required memory for the so called header and the actual objects.
The following graphic illustrates the memory usage of deep data objects. A multilevel header in which the header references further headers (ext. header) occurs only at internal tables.
Dynamic memory (header and data) is requested
When a deep data object is initialized with CLEAR, REFRESH or FREE, the actual data is deleted, however, the reference variables and the header (with dynamic data objects) are kept. The latter is reused when memory is requested again. Therefore, the memory requirement of a once used and then deleted dynamic data object consists of the reference and the memory requirement of the header (see example under complex data objects with deep components). Only when the statement FREE is used for internal tables, table headers could get deleted as well if they require too much memory. The memory requirement of a header depends upon the fact whether it is a platform with 32- or 64 bit architecture and amounts to roughly 100 byte. A table header generally requires more space than the other headers.
The exact memory requirement of a deep data object can be determined in the ABAP Debugger via the function memory consumption and via creating a memory snapshot for the Memory Inspector.