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

ライブラリー・ルーチンの呼び出しの回避

ビット単位操作 (接頭部 NOT、2 項演算子 AND、2 項演算子 OR、およ び 2 項演算子 EXCLUSIVE OR) は、多くの場合、 ライブラリー・ルーチンを呼び出すと評価されます。 ただし、これらの操作は、次のいずれかの条件が真である場合に、 ライブラリーが呼び出されずに処理されます。

特定の割り当て、式、および組み込み関数参照の場合は、 コンパイラーがライブラリー・ルーチンの呼び出しを生成します。 これらの呼び出しを回避すると、一般的にコードの実行速度が速くなります。

コンパイラーがこのような呼び出しを生成する時点を判断の助けとして、 ライブラリー・ルーチンを使って変換が行われるときにはいつでも、 コンパイラーがメッセージを生成します。

コードが、REFER を使用して BASED 構造体の 1 つのメンバーを参照している場合、 実行時にその構造体にマップするために、コンパイラーがライブラリー・ルーチンに対する 1 つ以上の呼び出し を生成することがあります。 これらの呼び出しは効率を低下させる可能性があるため、コンパイラー がこれらの呼び出しを行う場合には、メッセージを出して、 コード内の問題となる可能性のある場所を見つけることができるようにしています。

REFER を使用した BASED 構造体を使用するコードがあるにもかかわらず、コンパイラーがフラグを立て、このメッセージが出た場合は、* エクステント付きの対応する構造体を宣言するサブルーチンに構造体を受け渡すことによって、パフォーマンスの向上が可能になる場合があります。 これにより、構造体はいったん CALL ステートメントでマップされますが、呼び出されたサブルーチンでアクセスされるときにさらに再マップされることはなくなります。


Terms of use | Feedback

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