最適化 (情報工学)
コード最適化は、プラットフォーム依存の最適化とプラットフォームに依存しない最適化に分けられる。プラットフォームに依存しない最適化技法は多くのコンピュータで有効な技法である。プラットフォーム依存の技法は、命令レベルの並列性に関するもの、データレベルの並列性に関するもの、キャッシュ最適化技法など、プラットフォームによってパラメータが異なる技法である。
しかし、現代のコンピュータのマイクロアーキテクチャでは、本来プラットフォームに非依存のはずの改善ですら、逆効果の場合がある。たとえば一般論的には、多数の条件分岐がある場合、確率の高いほうから振り分けたほうが、少ない数の比較で済むから効率が良いはずである。ところが、分岐予測により「予測が当たった場合のペナルティは0で、外れた場合のペナルティは大きい」というマシンが現代ではありえる。