以下の表には、それぞれのオプションの目的の要旨、パフォーマンス上の利点と欠点、および使用上の注意 (該当する場合) が示されています。
| コンパイラー・オプション | 目的 | パフォーマンス上の長所 | パフォーマンス上の欠点 | 使用上の注意 |
|---|---|---|---|---|
| ARITH(EXTEND)
ARITH を参照 |
10 進数で許可される最大桁数を増やします | 一般には、ありません。 | ARITH(EXTEND) を使用すると、中間結果が大きくなるため、すべての 10 進数データ型でパフォーマンスがいくらか低下します。 | どれほど低下するかは、使用する 10 進数データの量に直接左右されます。 |
| DYNAM | サブプログラム (CALL ステートメントによって呼び出された) が実行時に動的にロードされるようにする | サブプログラムが変更されても、アプリケーションをリンク・エディットする必要がないので、サブプログラムの保守が容易になります。 | 呼び出しはライブラリー・ルーチンを介して行う必要があるため、パフォーマンスがわずかに低下します。 | 不要になった仮想記憶域を解放するには、CANCEL ステートメントを出してください。 |
| OPTIMIZE(STD)
(OPTIMIZEを参照) |
パフォーマンスがよくなるように、生成されるコードを最適化する | 一般に、もっと効率的な実行時コードが得られます。 | コンパイル時間が長くなること。OPTIMIZE は、NOOPTIMIZE に比べ、コンパイルにかかる処理時間が長くなります。 | NOOPTIMIZE は通常、頻繁なコンパイルが必要となるプログラム開発の段階で使用されます。これにより、シンボリック・デバッグも可能になります。実稼働用には、OPTIMIZE の使用をお勧めします。 |
| OPTIMIZE(FULL)
(OPTIMIZEを参照) |
生成されたコードをパフォーマンスがよくなるように最適化し、さら に DATA DIVISION も最適化する | 一般に、もっと効率的な実行時コードが得られ、ストレージ使用量が少なくなります。 | コンパイル時間が長くなること。OPTIMIZE は、NOOPTIMIZE に比べ、コンパイルにかかる処理時間が長くなります。 | OPT(FULL) は未使用データ項目を削除しますが、それは、ダンプ読み取り用マーカーとしてのみ使用されるタイム・スタンプまたはデータ項目の場合には、望ましくないことがあります。 |
| NOSSRANGE
(SSRANGEを参照) |
すべてのテーブル参照および参照変更式が適切な範囲内にあるかどうかを検査する | SSRANGE は、テーブル参照を検査するための追加コードを生成します。NOSSRANGE を使用すると、コードは生成されません。 | なし | 一般に、テーブル参照のたびに検査する必要はなく、数度の検査だけで済む場合には、独自の検査をコーディングする方が、SSRANGE を使用するより速くなります。 CHECK(OFF) ランタイム・オプションを使用して、実行時に SSRANGE をオフにすることができます。パフォーマンスを重視するアプリケーションについては、NOSSRANGE の使用をお勧めします。 |
| NOTEST
(TESTを参照) |
Rational Developer for System z のデバッグ・パースペクティブをフルに活用するために生成される追加のオブジェクト・コードを回避する。 | TEST を使用するとデバッグ情報が追加されるため、オブジェクト・ファイルのサイズが大幅に増えます。プログラムをリンクするときには、デバッグ情報を除外するようリンカーに指示することができます。これにより、実行可能ファイルのサイズが、NOTEST を使用してモジュールがコンパイルされた場合に作成されるサイズとほぼ同じになります。実行可能ファイルにデバッグ情報が含まれている場合は、実行可能ファイルのサイズが大きくなるためにロードに時間がかかり、ページングが増える場合があります。このため、パフォーマンスがわずかに低下する可能性があります。 | なし | TEST を使用すると、NOOPTIMIZE コンパイラー・オプションが強制的に有効になります。実稼働用には、NOTEST の使用をお勧めします。 |
| TRUNC(OPT)
(TRUNCを参照) |
算術演算の受信フィールドを切り捨てるためのコードの生成を回避する | 余分のコードを生成しないので、一般にパフォーマンスは向上します。 | TRUNC(BIN) と TRUNC(STD) はともに、BINARY データ項目が変更されるたびに、余分のコードを生成します。TRUNC(BIN) は、そのパフォーマンスについては COBOL (OS/390 および VM 版) V2 R2 で改善されたとはいえ、上記のオプション中では最も低速のオプションです。 | TRUNC(STD) は標準 COBOL 85 に準拠しますが、TRUNC(BIN) および TRUNC(OPT) は準拠しません。TRUNC(OPT) を使用すると、コンパイラーは、データが PICTURE および USAGE の仕様に従っていると見なします。可能な場合は、TRUNC(OPT) を使用することをお勧めします。 |
関連概念
最適化
関連タスク
コンパイル・エラー・メッセージのリストの生成
パフォーマンスを向上させるコンパイラー機能の選択
テーブルの効率的処理