最適化の管理、および最適化されたモジュール・デプロイメント・プロセスの管理

ABO 使用時に段階的反復アプローチを使用

ABO を使用するための段階的反復アプローチは、ABO によって生成されて最適化されたプログラムを実行することで得られるメリットに合わせて最適化プロセスのコストのバランスを取るための推奨アプローチです。

例えば、最初に、上位 x% のコントリビューターを含むモジュールを CPU 時間に最適化します。 ABO によって生成されたモジュールを使用して影響 (例えば、CPU 時間の短縮) を測定し、パフォーマンス目標が満たされるまで次の上位 x% の CPU コントリビューターについて操作を繰り返します。

IBM Application Performance Analyzer (APA) for z/OS などのパフォーマンス測定/レポート作成ツールは、上位 CPU コントリビューターの判別に役立つ可能性があります。 使用可能なパフォーマンス測定ツールを所有していない場合、アプリケーション実行時に最も実行された COBOL モジュールを判別するのであれば、ABO に付属する RTI Profiler を使用できます。

ABO からの恩恵を最も受けるプログラムの特性

コンパイルされたプログラムのいくつかは、他のプログラムよりも多くの恩恵を ABO から受けます。 これらのプログラムの重要な特性をいくつか知っておくことは、コンパイルした COBOL プログラムで ABO を段階的に使用するときにも役立つ可能性があります。

ABO は、コンパイラーが生成したオリジナルのコード、および一部の Language Environment (LE) 選択ルーチンに関してのみ、パフォーマンスを向上させることができます。 ただし、ABO には、他のサブシステム (CICS、Db2、IMS など) で時間が費やされた場合にパフォーマンスを向上させる手段がありません。

ABO を使用した最適化からより多くの恩恵を受ける可能性があるプログラムの重要な特性:
  • アプリケーションの実行時間の大部分が COBOL コードで費やされます (CICS、Db2、IMS など、他のサブシステムで費やされるのではありません)。
  • COBOL コードで非常に多くの計算が行われます。 例えば、COBOL コード自体で実際の作業が行われていて、COBOL コード自体が単に他のプログラムやサブシステムの「ドライバー」プログラムとして機能しているのではないプログラムなどです。
    • ソース・レベルでは、恩恵を受ける可能性が最も高いステートメントとしては COMPUTE、 IF、 MOVE、 ADD、 SUBTRACT、 MULTIPLY、 DIVIDE、 REMAINDER などがありますが、これらに限られるわけではありません。
    • また、一部の Language Environment (LE) ルーチンも ABO によって最適化できます。 そのようなルーチンは、多種多様な変換、移動、および算術演算を行います。 このようなルーチンには、IGZCSH2、 IGZCFPC、 IGZCONV、 IGZCVMO、 IGZCXPR、 IGZCXMU、 IGZCXDI などがあります。 ABO はこのようなルーチンを最適化します。 そのために、ABO は、そのようなルーチンの作業をより効率的に、最適化されたコードで直接実行したり、より効率的な LE ルーチンを呼び出したりします。
      注: COBOL ソースを調べるだけでは、実際にアプリケーションで費やされる時間は分からないため、APA などの分析ツールで作成されたパフォーマンス・レポートも一緒に調べる必要があります。
  • アプリケーション内に含まれる多くの COBOL モジュールが ABO による最適化に適格です。 すなわち、そのようなモジュールは適格な COBOL コンパイラーでコンパイルされたものであり、ABO によってサポートされている言語機能を含んでいます。