I-27-9. ソースコード最適化によるシステム性能向上

ソフトウェア最適化によるシステムの性能向上について、基本的な概念と設計方針を解説する。ソフトウェア最適化の基本手段である冗長なコードの排除やループの展開、インライン化、変数のレジスタ割り当てなど個別の手法を紹介し、またソースコードレベルの最適化の手順についても説明する。

【学習の要点】

* ソフトウェア最適化の方法としては、冗長なコードの削除、アルゴリズムの改善、ループ内不変値のくくり出し、インライン化、などの手法が知られている。これらの手法により、メモリの利用効率と、スピードが向上する。

図I-27-9. ソースコード品質の改良によるソフトウェア最適化

 

【解説】

(1)ソフトウェア最適化の方法

ソフトウェアの実行効率を最適化する手法として、言語仕様の活用、プロセッサ特性の活用、コンパイラの拡張機能・最適化機構の利用、などが挙げられる。他にもリンケージエディタによる最適化などが考えられる。

* 冗長なコードの排除

- 冗長なコードは、仕様を変更する際に修正が複数個所に及び、手間がかかることに加え、実行効率に悪影響を及ぼしうる。

* ループ処理の最適化

- ループ内不変値のくくりだし

- ループのマージ

- ループ回数の削減

* 内部変数の最適化

- 関数内部で利用される内部変数(局所変数)で利用される型によって性能に大きな影響がある。

- プロセッサにとって高速に処理ができる型とそうでない型がある。

- 原始型(プリミティブ)の「整数型」「ポインタ型」は高速に処理できるが、「浮動小数点型」はFPU(Floating Point Unit)を搭載していないと高速には処理ができない。

- 集成型・派生型の実行は原始型に比べ遅くなる。

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。