OPTIMIZE オプションでは、必要な最適化のタイプを指定します。
.-NOOPTIMIZE-------------------. >>-+-OPTIMIZE--+----------------+-+---------------------------->< | .-2----. | '-(--+-TIME-+--)-' +-0----+ '-3----'
省略形: OPT、NOPT
OPTIMIZE オプションと一緒に、DFT(REORDER) オプションを使用することを 強くお勧めします。実際、次の条件がすべて当てはまる場合は、PROCEDURE ブロック または BEGIN ブロックに対する OPTIMIZE の効果は 大幅に限定されます。
OPTIMIZE(2) を指定すると、NOOPTIMIZE の場合よりコンパイル時間が 大幅に増えることがあり、所要スペースが大幅に増えることがあります。 例えば、OPTIMIZE(2) を指定して大規模なプログラムをコンパイルするには 数分かかる場合があり、75M 以上の領域が必要になる可能性があります。
OPTIMIZE(3) の使用により、OPTIMIZE(2) を使用する場合よりもコンパイルに必要な時間と領域が増加します。大規模なプログラムの場合、OPTIMIZE(3) でのプログラムのコンパイル時間が OPTIMIZE(2) の 2 倍より大きくなる可能性があります。
コンパイラーは最適化の際にコードを移動して実行時効率を上げる 場合があります。 その結果、プログラム・リストの中のステートメント番号が、 ランタイム・メッセージで使用されるステートメント番号と対応しなくなることが あります。
NOOPTIMIZE は OPTIMIZE(0) と同等です。
OPTIMIZE(TIME) は、OPTIMIZE(2) と同等です。
OPTIMIZE(2) または OPTIMIZE(3) を使用すると、TEST オプションの機能が大きく制限されるので注意してください。 次に例を示します。
コードのパフォーマンス改善に最適なオプションの選択の詳細については、パフォーマンスの向上を参照してください。