オブジェクトの最適化とは、コンパイルされたコードを見て、 実行時パフォーマンスをできるだけ高速にするには何ができるかを判断し、必要な変更を行うこ とを意味します。 一般に、最適化の要求が高くなるにしたがって、オブジェクトの作成にかかる 時間が長くなります。 実行時には、高度に最適化されたプログラムまたはサービス・プログラムは、 対応する最適化されていないプログラムあるいはサービス・プログラムより高速で実行される ことになります。
しかし、高水準の最適化では、デバッグ・セッションに表 示された時、あるいは例外からの回復後にフィールドの値が正確でないことがあります。さらに、最適化処理によって一部のステートメントが再配置されたり 削除されることがあるため、最適化されたコードでは、 ソース・デバッグ・プログラムに よって使用される停止点およびステップ・ロケーションが変更されていることがあります。
フィールドの内容が (特に例外回復後に) 最新の値を示していることを保証するた めに、対応する定義仕様書に NOOPT キーワードを使用することができます。 詳細については、最適化に関する考慮事項を参照してください。
デバッグ時のこの問題を回避するには、プログラムをデバッグする時に はフィールドを正しく表示するためにモジュールの最適化レベルを低くし、その 後プログラムを実行用に使用可能にする時に、プログラムの効率を高めるた めにレベルを再び上げることができます。
プログラム・オブジェクトの現行の最適化レベルを判別するためには 、DSPPGM コマンドを使用してください。 このコマンドの表示 3 は現行レベルを示して います。 プログラムの最適化レベルを変更するには、CHGPGM コマンドを使用して ください。 プログラムの最適化パラメーターで、*FULL、*BASIC、*NONE のいずれかを指定することが できます。 これらは、それぞれの作成コマンドの OPTIMIZE パラメーターで指定できるのと同 じ値です。 コマンドの実行時に、プログラムが自動的に再作成されます。
同様に、現行のモジュール の最適化レベルを決定するために、 DSPMOD コマンドを使用してください。 このコマンドの表示 1、ページ 2 は現行レベルを示して います。 最適化レベルを変更するには、CHGMOD コマンドを使用してください。次に UPDPGM または CRTPGM を使用してプログラムを再作成する必要がありま す。
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.