Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, プログラミング・ガイド

PACKAGE 対ネストされた PROCEDURE

呼び出し側のネストされたプロシージャーは、 追加の隠しパラメーター (逆チェーン・ポインター) が渡されるように求めます。 結果として、アプリケーションに含まれている ネストされたプロシージャーが少なくなればなるほど、実行速度は速くなります。

アプリケーションのパフォーマンスを向上させるには、 ネストされたプロシージャーの母娘の対を、 パッケージ内部のレベル 1 の姉妹プロシージャーに変換します。 この変換は、ネストされたプロシージャーが、 その親プロシージャーで宣言された自動かつ内部の静的変数に依存していない場合に可能です。

ネストされたプロシージャーの例のプロシージャー b に、a で 宣言された変数が使われていない場合は、両方のプロシージャー を パッケージ化されたプロシージャーの例に示されているパッケージに 再編成することによって、これらのプロシージャーのパフォーマンス を向上させることができます。

ネストされたプロシージャーの例

a: proc;

  dcl (i,j,k) fixed bin;
  dcl ib      based fixed bin;
   .
   .
   .
  call b( addr(i) );
   .
   .
   .
  b: proc( px );
    dcl px      pointer;
    display( px->ib );
  end;
end;

パッケージ化されたプロシージャーの例

p: package exports( a );

  dcl ib      based fixed bin;

  a: proc;

    dcl (i,j,k) fixed bin;
   .
   .
   .
    call b( addr(i) );
   .
   .
   .
  end;

  b: proc( px );
    dcl px      pointer;
    display( px->ib );
  end;

end p;

Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)