オプティマイザ 【optimizer】
概要
オプティマイザ(optimizer)とは、対象の設定や構造などを調整し、より好ましい状態に組み替える「最適化」(optimization)を行うためのソフトウェアや機能のこと。分野によって対象や具体的な仕組みなどは異なる。特定のアルゴリズムに基づく自動処理によって、対象の振る舞いや外部から見た実質的な内容は変更せずに、内部の状態を何らかの好ましい状態に変更する機能を指す。
例えば、画像や動画、音声の内容や品質は変えずにデータ量を削減する(圧縮率を高める)ソフトウェアや、プログラムコードの処理内容を変えずに高速化する機能などが該当する。
言語処理系のオプティマイザ
プログラミング言語など人工言語の処理系では、コードの実質的な内容は変えずに処理の効率化などを図る機能やソフトウェアをオプティマイザという。
コンパイラやインタプリタなどの処理系は人間が読み書きできるソースコードをコンピュータの理解できる形式(機械語のコードなど)に変換するが、オプティマイザが内蔵されている場合には、処理内容を変えずにより高速に動作したりより少ない記憶容量で動作するよう工夫されたコードを生成することができる。
プログラムの過剰な最適化は、プログラマの意図しない動作を引き起こしてバグの原因となることもあるため、どういった最適化処理を行うか開発者が明示的に指定できるようになっていることが多い。
データベースのオプティマイザ
データベース管理システム(DBMS)の持つ機能の一つで、外部から投入された問い合わせ(クエリ)群を最も効率よく処理できるような実行計画を立てる機能を「クエリオプティマイザ」あるいは単にオプティマイザという。
DBMSが内部に持つ機能で、性能を決定付ける最も重要な機能の一つだが、利用者が明示的に操作や指示、設定などを行うことは(でき)ないため存在が意識されることは少ない。
(2019.12.11更新)