[an error occurred while processing this directive] [an error occurred while processing this directive]


プログラミング
逆引き
クライアントとの通信
VisMでの通信
Factoryでの通信
WebServiceでの通信
CSP (Cache' Server Pages)
Cache'SQL
設定・性能


【広告】









^GETPPGINFO ユーティリティ

プロセスプライベートグローバルの使用量を確認する

プロセスプライベートグローバル、使ってますか?

一時領域として大変便利なプロセスプライベートグローバルですが、どれだけ使っているか知りたい時に使用するのが^GETPPGINFOユーティリティです。

このユーティリティを使用すると、プロセス毎に
  • 使用しているプロセスプライベートグローバルの名前
  • 使用しているプロセスプライベートグローバルのサイズ(ブロックまたはバイト)
を取得することができます。



使い方

%SYS> Do ^GETPPGINFO([inpid] , [options] , [outputfile] )
   
inpid 省略可。取得したいプロセスのID($Jなどで取得)を指定する。
省略時または"*"を指定した場合はすべてのプロセスが対象になる。
options 省略可。以下の動作フラグを文字列として結合した物
フラグ文字意味
bプロセスプライベートグローバルのサイズをバイト単位で出力。
指定しない場合はブロック数を出力
Mnn使用しているブロック数がnn未満の場合、出力しない
S処理中に情報を画面に出力しない。
Tプロセスプライベートグローバル名毎の使用量を表示せず、合計のみを表示する。
指定しない場合は、合計とプロセスプライベートグローバル名毎の使用量を表示する。
例:"STM1000"
outputfile 省略可。指定した場合はCSV形式の結果ファイルが作成される。

動作例

%SYS>ZN "%SYS"

%SYS>D ^GETPPGINFO()
Process ID: 23015 --> Total PPG Block count 1, block size 8,192
Process ID: 9259 --> Total PPG Block count 3, block size 8,192
PPG: %Language uses 2 blocks
Process ID: 9260 --> Total PPG Block count 3, block size 8,192
PPG: %Language uses 2 blocks

%SYS>D ^GETPPGINFO($J,"S","/tmp/1.txt")
※画面には何も出力されず、/tmp/1.txtに次のように出力される
JOB,PPGNAME,BLOCKS
24215,24215.^||%Language,2

%SYS>F i=1:1:10000 S ^||test(i)="This is a pen." //プロセスプライベートグローバルに値をセット

%SYS>D ^GETPPGINFO($J)
Process ID: 24215 --> Total PPG Block count 32, block size 8,192
PPG: %Language uses 2 blocks
PPG: test uses 29 blocks

%SYS>D ^GETPPGINFO($J,"T")
Process ID: 24215 --> Total PPG Block count 32, block size 8,192

備考

2010.2.4から使用可能。


[an error occurred while processing this directive] [an error occurred while processing this directive]
2014/02/04Update