最適化

更新日:

用語解説

コンパイラの最適化は、プログラムの観測可能な意味を保ったまま、中間表現又は目的コードを変換し、実行時間、コード量、消費電力等を改善する処理です。

■ 試験で押さえるポイント

  • 定数畳込み、共通部分式除去、到達不能・不要コード除去、ループ不変式移動、インライン展開、強さの軽減等があります。

  • 局所最適化は基本ブロック内、大域最適化は関数内の複数ブロック、手続間最適化は関数境界を越えて解析します。

  • 速度を上げるインライン展開がコード量を増やすなど指標間のトレードオフがあり、対象環境と最適化レベルに応じて選びます。

  • 浮動小数点演算順序、例外、副作用、並行処理等では変換が結果を変え得るため、言語仕様で許される範囲を守ります。

■ 選択肢での判断ポイント

意味を保つことが前提です。定数計算や不要処理の削除を識別し、アルゴリズム自体の仕様変更と区別します。

例: 実行時式「3×4」をコンパイル時に12へ置換する定数畳込みや、ループ内で毎回同じ値を計算する式をループ外へ移す変換があります。

音声で聞く

同じ分野の用語