文章目录

第四十一章 Caché 变量大全 $ZSTORAGE 变量

包含进程的最大可用内存。

大纲
$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值没有影响。

第四十一章 Caché 变量大全 $ZSTORAGE 变量_内存

第四十一章 Caché 变量大全 $ZSTORAGE 变量_内存_02

示例

以下示例将$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