/Ox (ほとんどの速度の最適化を有効にする)

/Ox コンパイラ オプションを使用すると、速度を優先する最適化を組み合わせることができます。 一部のバージョンの Visual Studio IDE とコンパイラのヘルプ メッセージでは、これは "完全な最適化" と呼ばれますが、/Ox コンパイラ オプションを使用すると、/O2 によって有効になる速度の最適化オプションのサブセットのみが有効になります。

構文

/Ox

解説

/Ox コンパイラ オプションを使用すると、速度を優先する /O コンパイラ オプションが有効になります。 /Ox コンパイラ オプションには、/O1 または /O2 (サイズの最小化、実行速度の最大化) によって有効にされる追加の /GF (同一文字列の削除)/Gy (関数レベルのリンクの有効化) オプションは含まれていません。 /O1/O2 によって適用される追加オプションを使用すると、文字列または関数へのポインターでターゲット アドレスが共有されることがあります。これは、デバッグと厳密な言語の準拠に影響を与える可能性があります。 /Ox オプションは、/GF/Gy を含めずにほとんどの最適化を有効にする簡単な方法です。 詳細については、/GF/Gy オプションの説明を参照してください。

/Ox コンパイラ オプションは、次のオプションを組み合わせて使用する場合と同じです。

/Ox は次のものとは相互に排他的です。

/Ox コンパイラ オプションを /Os (コードのサイズの優先) と組み合わせる /Oxs を指定した場合、/Ox コンパイラ オプションの速度に寄った偏りを取り消すことができます。 組み合わされたオプションでは、より小さなサイズのコードが優先されます。 /Oxs オプションは、オプションがその順序で表示される場合に /Ox/Os を指定することとまったく同じです。

リリース ビルドに使用できるすべてのファイル レベルの最適化を適用するには、/Ox の代わりに /O2 (実行速度の最大化) を、/Oxs の代わりに /O1 (サイズの最小化) を指定することをお勧めします。 リリース ビルドをさらに最適化するには、/GL (プログラム全体の最適化) コンパイラ オプションと /LTCG (リンク時のコード生成) リンカー オプションについても検討してください。

Visual Studio 開発環境でこのコンパイラ オプションを設定するには

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関する記事を参照してください。

  2. [構成プロパティ]>[C/C++]>[最適化] プロパティ ページを選択します。

  3. [最適化] プロパティを変更します。

このコンパイラ オプションをコードから設定するには

関連項目

/O オプション (コードの最適化)
MSVC コンパイラ オプション
MSVC コンパイラ コマンド ラインの構文