z/OS Language Environment Customization
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


HEAP64 (AMODE 64 only)

z/OS Language Environment Customization
SA38-0685-00

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)
Read syntax diagramSkip visual syntax diagram
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.

For more information

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014