/Ox
(ほとんどの速度の最適化を有効にする)
/Ox
コンパイラ オプションを使用すると、速度を優先する最適化を組み合わせることができます。 一部のバージョンの Visual Studio IDE とコンパイラのヘルプ メッセージでは、これは "完全な最適化" と呼ばれますが、/Ox
コンパイラ オプションを使用すると、/O2
によって有効になる速度の最適化オプションのサブセットのみが有効になります。
構文
/Ox
解説
/Ox
コンパイラ オプションを使用すると、速度を優先する /O
コンパイラ オプションが有効になります。 /Ox
コンパイラ オプションには、/O1
または /O2
(サイズの最小化、実行速度の最大化) によって有効にされる追加の /GF
(同一文字列の削除) と /Gy
(関数レベルのリンクの有効化) オプションは含まれていません。 /O1
と /O2
によって適用される追加オプションを使用すると、文字列または関数へのポインターでターゲット アドレスが共有されることがあります。これは、デバッグと厳密な言語の準拠に影響を与える可能性があります。 /Ox
オプションは、/GF
と /Gy
を含めずにほとんどの最適化を有効にする簡単な方法です。 詳細については、/GF
と /Gy
オプションの説明を参照してください。
/Ox
コンパイラ オプションは、次のオプションを組み合わせて使用する場合と同じです。
/Ob
(関数のインライン展開)。オプションのパラメーターは 2 (/Ob2
) です
/Ox
は次のものとは相互に排他的です。
/Ox
コンパイラ オプションを /Os
(コードのサイズの優先) と組み合わせる /Oxs
を指定した場合、/Ox
コンパイラ オプションの速度に寄った偏りを取り消すことができます。 組み合わされたオプションでは、より小さなサイズのコードが優先されます。 /Oxs
オプションは、オプションがその順序で表示されるときに/Ox
/Os
を指定するのとまったく同じです。
リリース ビルドに使用できるすべてのファイル レベルの最適化を適用するには、/Ox
の代わりに /O2
(実行速度の最大化) を、/Oxs
の代わりに /O1
(サイズの最小化) を指定することをお勧めします。 リリース ビルドをさらに最適化するには、/GL
(プログラム全体の最適化) コンパイラ オプションと /LTCG
(リンク時のコード生成) リンカー オプションについても検討してください。
Visual Studio 開発環境でこのコンパイラ オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関する記事を参照してください。
[構成プロパティ]>[C/C++]>[最適化] プロパティ ページを選択します。
[最適化] プロパティを変更します。
このコンパイラ オプションをコードから設定するには
- 以下を参照してください。Optimization