|
HEAP64 controls the allocation of user
heap storage for AMODE 64 applications and specifies how that storage
is managed.
Heaps are storage areas that contain
user-controlled dynamically allocated variables or data. An example
is C data allocated as a result of the malloc(), calloc(),
and realloc() functions.
- AMODE 64 default
- HEAP64=((1M,1M,KEEP,32K,32K,KEEP,4K,4K,FREE),OVR)
Syntax
.-KEEP-.
>>-HEAP64--=--(--(--init64--,--incr64--,--+-FREE-+--,--init31--->
'-FILL-'
.-KEEP-. .-FREE-.
>--,--incr31--,--+-FREE-+--,--init24--,--incr24--,--+-KEEP-+---->
.-OVR----.
>--)--,--+-NONOVR-+--)-----------------------------------------><
- init64
- Determines the initial allocation of heap storage obtained above
the 2G bar. Specify this value as nM bytes
of storage. If a value of 0 or less is specified, the default is used.
- incr64
- Determines the minimum size of any subsequent increment to the
user heap storage obtained above the 2G bar. Specify this value as nM
bytes of storage. If a value less than 0 is specified, the default
is used.
- KEEP
- Specifies that an increment to user heap storage is not released
when the last of the storage within that increment is freed.
- FREE
- Specifies that an increment to user heap storage is released when
the last of the storage within that increment is freed.
- FILL
- Specifies that an increment to user heap storage is released when
the last of the storage within that increment is freed. In addition,
when a storage request results in a new increment segment being created
which is greater than the incr64 size, the entire
segment is filled by the single storage request. This option is available
only for user heap storage above the bar.
- init31
- Determines the minimum initial size of user heap storage that
is obtained above the 16MB line and below the 2GB bar. This value
can be specified as n, nK,
or nM number of bytes. If a value of 0 or
less is specified, the default is used. The amount of allocated storage
is rounded up to the nearest multiple of 8 bytes.
- incr31
- Determines the minimum size of any subsequent increment to user
heap storage that is obtained above the 16MB line and below the 2GB
bar. This value can be specified as n, nK,
or nM number of bytes. If a value less than
0 is specified, the default is used. The amount of allocated storage
is rounded up to the nearest multiple of 8 bytes.
- init24
- Determines the minimum initial size of user heap storage that
is obtained below the 16MB line. This value can be specified as n, nK,
or nM number of bytes. If a value of 0 or
less is specified, the default is used. The amount of allocated storage
is rounded up to the nearest multiple of 8 bytes.
- incr24
- Determines the minimum size of any subsequent increment to user
heap storage that is obtained below the 16MB line. This value can
be specified as n, nK,
or nM number of bytes. If a value less than
0 is specified, the default is used. The amount of allocated storage
is rounded up to the nearest multiple of 8 bytes.
- OVR
- Specifies that the option can be overridden.
- NONOVR
- Specifies that the option cannot be overridden.
z/OS® UNIX considerations - In a multithreaded environment, user heap storage is shared by
all threads the process.
- Heap storage is managed at the thread level using pthread_key_create, pthread_setspecific,
and pthread_getspecific.
Performance considerations You can improve
performance with the HEAP64 runtime option by specifying values that
minimize the number of times the operating system allocates storage.
See RPTSTG for information about
how to generate a report you can use to determine the optimum values
for the HEAP64 runtime option.
|