性能を向上させるプログラミング

実行時にアプリケーションが最も最適化されていることを目標として、パフォーマンスに影響するようにアプリケーションを構成する方法は多数あります。最適化とは、通常、アプリケーションがより迅速に実行されるか、より少ないメモリ ストレージまたはより少ないリソースを使用して動作できるか、または、使用する CPU パワーがより少ないことを意味します。

通常、これらの要素のいずれかを改善すると別の要素が犠牲になります。つまり、より迅速に実行されるようにアプリケーションを最適化することはできますが、そうすることで、その過程でより多くのメモリが使用される可能性があります。アプリケーションを最適化するときは、適用する最適化のタイプに影響を及ぼすため、達成する内容について慎重に検討してください。

多くの場合、パフォーマンスに最も大きく影響するのは、コードで適切なアルゴリズムまたはロジックを使用していることと、それらのオペレーションで適切なデータ構造を使用していることです。(浮動小数点ではなく) 整数演算を確実に使用することと同程度に単純なことで、パフォーマンス上の大きなメリットを生み出すことができます。COBOL 構文の最適化PL/I 構文の最適化の各節では、コードの最適化に役立つ適切な多くのプラクティスを示します。

コンパイルは最適化できるアプリケーションのもう 1 つの領域です。開発のデバッグ段階では、パフォーマンスに影響するものの、コードをステップ実行でデバッグするために必要な特定の診断をオンにします。アプリケーションの実稼働バージョンのコンパイル時には、すべてではないにしても、一部の診断をオフにする必要があります。

ヒント: 診断をオフにして構成されたアプリケーションの方が、より最適化されることは事実ですが、診断をオンにして実行することにもメリットがある場合があります。診断によって、予期せぬ問題を発生前に調査できます。診断はリソースを消費し、問題判別機能とパフォーマンスの間には常に競合が存在します。ユーザーは、問題の再現を試みることや単に診断をオンにして問題の再発生を待つことに比べ、問題の最初の発生時に診断可能であるほうが重要なのか、を判断する必要があります。

実稼働バージョンのコンパイル時は、ターゲットとしているプラットフォームについて考慮することも重要です。たとえば、できる限り多くのプラットフォームで実行されているアプリケーションを設計している場合、最適化に役立つ特定の CPU の機能のメリットを利用できない可能性があります。

求めている最適化のレベルを問わず、テスト/実装段階においては、本稼働時にパフォーマンスの問題が発生した場合に比較する許容可能なレベルで実行されているアプリケーションの結果セットを得ることができるように、アプリケーションのベンチマークを行う必要があります。アプリケーションが実行された環境の詳細 (プラットフォーム、一連の指令、適用されている特定のメモリ戦略など) を含めて、ベンチマークの結果が明確に記録される必要があります。