Published on InterSystems Developer Community (https://community.intersystems.com)

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

文章
姚 鑫 · 二月 19, 2021 阅读大约需 2 分钟

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

第四十一章 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值没有影响。

image

示例

以下示例将$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
#Caché #InterSystems IRIS #InterSystems IRIS for Health

源 URL:https://cn.community.intersystems.com/post/%E7%AC%AC%E5%9B%9B%E5%8D%81%E4%B8%80%E7%AB%A0-cach%C3%A9-%E5%8F%98%E9%87%8F%E5%A4%A7%E5%85%A8-zstorage-%E5%8F%98%E9%87%8F