包含进程的最大可用内存。
大纲$ZSTORAGE
$ZS
描述
$ZSTORAGE
包含JOB
的进程私有内存的最大内存量(以KB
为单位)。此内存可用于局部变量、堆栈和其他表。此内存限制不包括例程目标代码的空间。此内存根据需要分配给进程,例如在分配数组时。
一旦将此内存分配给进程,通常在该进程退出之前不会释放它。但是,当大量内存被使用(例如,大于32MB)然后被释放时,系统间IRIS会尝试在可能的情况下将释放的内存释放回操作系统。
还可以使用$ZSTORAGE
设置最大内存大小。例如,以下语句将作业的最大进程专用内存设置为524288 KB
:
SET $ZSTORAGE=524288
更改$ZSTORAGE
会更改$STORAGE
特殊变量的初始值,该变量包含进程的当前可用内存(以字节为单位)。
$ZSTORAGE
的最大值为2147483647
。$ZSTORAGE
默认值为262144
。$ZSTORAGE
的最小值为128
。$ZSTORAGE
值大于最大值或小于最小值会自动默认为最大值或最小值。$ZSTORAGE
设置为整数值;InterSystems IRIS截断任何小数部分(如果指定)。
可以通过更改最大每进程内存(KB)系统配置设置来更改$ZSTORAGE
默认值。在管理门户中,依次选择System Administration、Configuration、Systtem Configuration、Memory和Startup。可以根据需要增加每个进程的最大内存(KB),最大为2147483647 KB。更改每个进程的最大内存(KB)会更改后续启动的进程的$ZSTORAGE
值;对当前进程的$ZSTORAGE
值没有影响。
以下示例将$ZSTORAGE
设置为其最大值和最小值。尝试将$ZSTORAGE
设置为小于最小值的值(16)时,会自动将$ZSTORAGE
设置为其最小值(128):
/// d ##class(PHA.TEST.SpecialVariables).ZS()
ClassMethod ZS()
{
SET $ZS=128
WRITE "minimum storage=",$ZS,!
SET $ZS=16
WRITE "less than minimum storage=",$ZS,!
SET $ZS=2147483647
WRITE "maximum storage=",$ZS,!
}
DHC-APP>d ##class(PHA.TEST.SpecialVariables).ZS()
minimum storage=128
less than minimum storage=128
maximum storage=2147483647