最適化(Delphi)

提供: RAD Studio
移動先: 案内検索

Delphi コンパイラ指令のリスト:インデックス への移動


種類

スイッチ

構文

{$O+} または {$O-} {$OPTIMIZATION ON} または {$OPTIMIZATION OFF}

デフォルト

{$O+} {$OPTIMIZATION ON}

スコープ

ローカル(DCCIOSARM コンパイラと DCCIOSARM64 コンパイラの場合はグローバル)


$O 指令はコードの最適化を制御するものです。{$O+} 状態の場合、コンパイラはいくつものコード最適化を実行します。たとえば、CPU レジスタへの変数の格納、共通の部分式の削除、誘導変数の生成などです。{$O-} 状態では、このような最適化はすべて無効になります。

特定のデバッグ状況以外では、最適化を無効にする必要はないはずです。Delphi コンパイラで実行されるどの最適化の場合も、プログラムの意味は絶対に変更されません。つまり、プログラマが特に注意しなければならないような "安全でない" 最適化はコンパイラでは行われません。

メモ:

  • $O 指令では、手続きまたは関数全体について最適化の有効/無効を切り替えることができるだけです。ルーチン内の 1 行または複数行について、最適化を有効または無効にすることはできません。
  • 32 ビット iOS デバイスをターゲットとする(したがって DCCIOSARM コンパイラを使用する)iOS アプリケーションの場合、および 64 ビット iOS デバイスをターゲットとする(したがって DCCIOSARM64 コンパイラを使用する)iOS アプリケーションの場合、$O 指令のスコープはグローバルです。単一のソース コード ファイルに $O オプションが複数存在していても、コンパイラからは警告やヒントのメッセージは出力されず、オプティマイザでは最後の設定が使用されます。
    一方、iOS シミュレータをターゲットとする(かつ、DCCIOS32 コンパイラを使用する)iOS アプリケーションの場合は、Delphi デスクトップ コンパイラの場合と同じように、$O 指令のスコープはローカルになります。

関連項目