RPG

131. VARYING キーワードを使って可変長のパフォーマンスを改善する

WEB開発においては、HTML全体を読み込んだりして大量のメモリが必要となる場合がある。
それ以外の場面でも非常に大きなフィールドが必要であるときの簡単にできて、効果的な
テクニックを紹介しよう。

【 サンプル A 】
D STR             S          32767A                                 
C                   DO        1000000                               
C                   EVAL      STR = 'A' + 'B' + 'C'                 
C                   ENDDO                                           
C                   SETON                                        LR
【 解説 】

このプログラムは 100万回の LOOP を繰り返している。
実行させて DSPLOG を調べてみると CPU は約400 秒間も連続動作している。
これに対して 大きな変数 STR に VARYING キーワードを次のように追加する。

【 サンプル B 】
D STR             S          32767A   VARYING                                
C                   DO        1000000                               
C                   EVAL      STR = 'A' + 'B' + 'C'                 
C                   ENDDO                                           
C                   SETON                                        LR
【 解説 】

もう一度、実行してみると CPU は約 4秒間の使用と、驚くことに 1/100 に短縮されている。
大規模な大量メモリには VARING を指定するだけで驚くほどのパフォーマンス改善の効果を
発揮してくれるのである。