ARTICLE
Memory Consumption of Deep Data Objects
All data types whose data object content represents the actual work data
are referred to in ABAP as "flat". The elementary
data types of a fixed length are flat, as are structures with solely
flat components. The memory requirement of flat data objects is
statically defined by the data type. Flat data objects are always
static data objects .
On the other hand, data types where the contents of the data objects are
references - which, in turn, reference work
data in another memory area - are referred to as "deep". Deep refers to
types of data and
object reference variables as
well as to types of strings ,
internal tables and
boxed component s . Strings and
internal tables are dynamic data
objects whose storage requirement can change during program runtime
and are managed internally through references. Reference variables
belong to the static data objects since their actual size is defined,
whereas the size of the explicitly referenced objects is dynamic.
Boxed component s constitute a combination case since their memory
consumption in internal mode is not fixed when the program starts but
they can be handled like static data objects with a fixed length.
Structures are called deep, irrespective of their
nesting , if they contain at least
one deep component.
When you work with deep data objects, working memory is requested at
program runtime. In the case of reference variables, this is the memory
for administration information and the created objects (instances of
classes and anonymous data objects
). In the case of dynamic data objects (strings, internal tables),
this is the memory area for administration information and for the data
objects themselves. Objects referenced by reference variables can
themselves, in turn, be dynamic - that is, they are or contain strings
or internal tables.
The requested memory must be available in the current
internal mode since otherwise
runtime errors would occur.
Memory requirement for deep data objects
Maximum size of dynamic data objects
Sharing between dynamic data objects
Complex data objects with deep components
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved