HEAP64 controls the allocation of user
heap storage for AMODE 64 applications and specifies how that storage
is managed. Heaps are storage areas containing user-controlled dynamically
allocated variables or data. An example is C data allocated as a result
of the malloc(), calloc(), and realloc() functions.
The
default value for AMODE 64 applications is HEAP64(1M,1M,KEEP,32K,32K,KEEP,4K,4K,FREE).
Syntax
.-KEEP-.
>>-+-HEAP64-+--(--+--------+--,--+--------+--,--+------+--,----->
'-H64----' '-init64-' '-incr64-' +-FREE-+
'-FILL-'
.-KEEP-.
>--+--------+--,--+--------+--+------+--,--+--------+--,-------->
'-init31-' '-incr31-' '-FREE-' '-init24-'
.-KEEP-.
>--+--------+--+------+--)-------------------------------------><
'-incr24-' '-FREE-'
- init64
- Determines the initial allocation of heap storage that is 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 16M line and below the 2G bar. This value can
be specified as n, nK,
or nM number of bytes. If 0 is specified,
the initial storage is obtained on the first use and is based on the
increment size. 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 16M line and below the 2G
bar. This value can be specified as n, nK,
or nM number of bytes. 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 16M line. This value can be specified as n, nK,
or nM number of bytes. If 0 is specified,
the initial storage is obtained on the first use and is based on the
increment size. 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 16M line. This value can be
specified as n, nK,
or nM number of bytes. The amount of allocated
storage is rounded up to the nearest multiple of 8 bytes.
z/OS® UNIX considerations
In
a multithreaded environment, user heap storage is shared by all threads
the process.
Performance consideration
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.