$ZSTORAGE (ObjectScript)
構文
$ZSTORAGE
$ZS
概要
$ZSTORAGE には、ジョブのプロセス・プライベート・メモリ用の最大メモリ量 (KB 単位) が格納されます。このメモリは、ローカル変数、スタック、他のテーブルに利用できます。このメモリ制限には、ルーチン・オブジェクト・コードのスペースは含まれていません。このメモリは、必要に応じて (例えば配列を割り当てるときなどに) プロセスに割り当てられます。
一度このメモリがプロセスに割り当てられると、通常はプロセスが終了するまで、その割り当ては解除されません。ただし、大量の (例えば 32MB を超える) メモリが使用されてから解放された場合、可能であれば、InterSystems IRIS は割り当て解除されたメモリをオペレーティング・システムに戻します。
$ZSTORAGE を使用して、最大メモリ・サイズを設定することもできます。例えば、以下の文はジョブの最大プロセス・プライベート・メモリを 524288 KB に設定します。
SET $ZSTORAGE=524288
$ZSTORAGE を変更すると、$STORAGE 特殊変数の初期値が変化します。これはプロセスで使用できる現在メモリ (バイト) です。
-
最大値 : SET $ZSTORAGE=-1 で $ZSTORAGE を最大値 2147483647 に設定します。
-
最小値 : SET $ZSTORAGE=256 で $ZSTORAGE を最小値 256 に設定します。
-
既定値 : $ZSTORAGE の既定値は、システム構成設定 [プロセスあたりの最大メモリ (KB)] で設定された値です。管理ポータルで、[システム管理]、[構成]、[システム構成]、[メモリと開始設定] を選択します。[プロセス当たりの最大メモリ(KB)] を変更すると、続いて開始されたプロセスの $ZSTORAGE 値も変更されます。ただし、現在のプロセスの $ZSTORAGE 値には影響を与えません。
$ZSTORAGE の値が、最大値よりも大きいか最小値よりも小さい場合は、自動的に既定の最大値または最小値に設定されます。$ZSTORAGE は整数値に設定されます。InterSystems IRIS では、いかなる小数部も切り捨てられます (指定した場合)。
オペレーティング・システムによって、実行中のアプリケーションの最大メモリ割り当てに上限が課される場合があります。InterSystems IRIS インスタンスがこのような上限の対象である場合、プロセスは $ZSTORAGE で指定されたメモリの一部を取得できず、その結果 <STORE> エラーが発生することがあります。
例
以下の例では、$ZSTORAGE を最大値および最小値に設定します。$ZSTORAGE を、最小値より少ない値 (16) に設定しようとすると、自動的に $ZSTORAGE は最小値 (256) に設定されます。
SET $ZS=256
WRITE "minimum storage=",$ZS,!
SET $ZS=16
WRITE "set to < minimum sets to minimum storage=",$ZS,!
SET $ZS=-1
WRITE "maximum storage=",$ZS,!
関連項目
SET コマンド
KILL コマンド
$STORAGE 特殊変数