最初のページに戻ります。

総合の目次があるページに戻ります。

よく使うマニュアルです

Wiki

updated on 2004.06.23

9.29.RPGの実行効率の向上

[ Previous ] [ HOME ] [ Upper ] [ Next ]


ここに掲げるのは、SYSTEM36のマニュアルとSYSTEM38の講習会テキストに出ていた内容です。ですので、AS/400にそのまま当てはまるかは定かではありません。でも、なにかの参考になるかもしれません。

System38から

PAGサイズの減少

  • ODPのSHAREをする。(OVRDBFでSHARE(*YES)する。このとき、共用されるプログラムはLRはオフにする事。)

  • プログラムの複数レベルの階層構造にせず、単一レベル構造にする。(外サブを使わない)

  • 複数の物理ファイルを1つの論理ファイルにまとめて、プログラムから処理するファイルの数を減らす。

  • プログラムで使用しないレコード様式を含むファイルがある場合は、IGNOREで、不要なレコード様式を除去する。

  • 不要なフィールドの定義を除去する。

  • 時々しか使用されないファイルは、明示的なOPEN、CLOSEを使用する。

CPUサービスの減少

  • CALL命令を減らす。

  • 構造化プログラムテクニックを使用する。

  • CALLで、複数のパラメータを渡さず、データ構造を利用して、単一フィールドにする。

  • 標識の繰り返し使用を避ける。

  • 添え字付き配列が同じ名前で繰り返しコーディングされている場合は、前もって単一フィールドに移動してそれを利用する。

  • 数字の桁数は奇数にする。

  • サブファイルの使用を避けて、配列にする。または、SFLPAGE=SFLSIZEにする。

  • CHGJOBを頻繁にするのを避ける

  • SETON LRを止めて、RETURNで戻る。

その他

  • ファイルコーディングの順番は、頻度の高いものから。

  • 同じタイミングで使用するファイルは、ファイル仕様書では、隣接してコーディングする。

  • 遠隔の端末に対しては、PUTOVRキーワードで、データのオーバーライドをする。

  • 遠隔の印刷に対しては、プログラム外部記述のプリンターファイルを使用する。

  • GET & アンロックのコーディングが可能か。

  • *BLANKをやめて固定情報にする。

  • 画面に対するPUTは、出来る限り1回で全画面を出力する。

  • DBのレコードロックの時間を短くする。

System36から

記憶域の節約方法

  • 参照しない標識を取り除く。

  • 演算の作業フィールドを使い回す。

  • 出力の英数字フィールド及び固定情報を記述する場合、間に入る必要なブランクを含めて、一つの固定情報にしてしまう。(隣接するリテラルを1つのリテラルにする)

  • データ構造を利用して、複数タイプのレコード用に同じ内部記述を定義して、MOVE命令を減らす。

  • 多数の条件標識のテストを避ける用にコーディングする。

  • TESTB、BITON、BITOFでは、演算項目2で実際のビットパターンを使う。

  • 必要不可欠な場合をのぞき、四捨五入を使用しない。

  • 小数部分の桁数を等しくした同じ長さの数字フィールドを使用する。フィールドが同じ長さにならないときは、小数部分の桁数だけでも同じにする。

  • 入力仕様書でレコード記入行をいくつも指定しないで、OR記入行を用いる。(内部記述のこと)

  • 必要不可欠な場合をのぞき、停止標識は使用しない。

  • 配列で変数指標の使用をなるべく少なくします。

  • 不必要なテーブルまたは配列を定義しない。

  • 入力レコードのすべてのフィールドを定義するかわりに、1つの大きなフィールドまたは配列だけを定義する。(2進数やパックには効果なし):内部記述のこと

実行効率改善の手法

  • 除算よりも乗算のほうが早く行われます。 800÷4=800 * 0.25

  • LOKUPは、RPGのループよりも配列中の値を早く見つけられる。

  • 256バイト未満の配列全体を消去する場合は、フィールドとしてデータ構造中に配列を指定して、そのフィールドに*BLANKをセットしたほうが処理が迅速。

  • 入出力データのパックとアンパックは、10進数から2進数への変換、その逆の変換よりも早く行われる。

 

1998/7/18

 

[ Previous ] [ HOME ] [ Upper ] [ Next ]

You are at K's tips-n-kicks of AS/400

 

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送