Contains the maximum available memory for a process.
contains the maximum amount of memory, in Kbytes, for a job’s process-private memory. This memory is available for local variables, stacks, and other tables. This memory limit does not include space for the routine object code. This memory is allocated to the process as needed, for example when allocating an array.
Once this memory is allocated to the process, it is generally not deallocated until the process exits. However, when a large amount of memory is used (for example greater than 32MB) and then freed, Caché attempts to release deallocated memory back to the operating system, where possible.
You can also use $ZSTORAGE
to set the maximum memory size. For example, the following statement sets the job’s maximum process-private memory to 524288 Kbytes:
changes the initial value for the $STORAGE
special variable, which contains the current available memory (in bytes) for the process.
The maximum value for $ZSTORAGE
is 2147483647. The $ZSTORAGE
default is 262144. The minimum value for $ZSTORAGE
is 128. $ZSTORAGE
values larger than the maximum or smaller than the minimum automatically default to the maximum or minimum value. $ZSTORAGE
is set to an integer value; Caché truncates any fractional portion (if specified).
The following example sets $ZSTORAGE
to its maximum and minimum values. Attempting to set $ZSTORAGE
to a value (16) that is less than the minimum value automatically sets $ZSTORAGE
to its minimum value (128):
WRITE "minimum storage=",$ZS,!
WRITE "less than minimum storage=",$ZS,!
WRITE "maximum storage=",$ZS,!