アプリケーションのコードの最適化を指定します。
Linux*: | -O[n] |
macOS*: | -O[n] |
Windows*: | /O[n] |
n |
最適化レベル。設定可能な値は、1、2、または 3 です。Linux* および macOS* システムでは、0 も指定できます。 |
O2 |
速度について最適化します。このデフォルトは、指定されているコンパイラーに応じて変更されます。詳細は、下記を参照してください。 |
このオプションは、アプリケーションのコードの最適化を指定します。
オプション |
説明 |
---|---|
O (Linux* および macOS*) |
O2 を指定した場合と同じです。 |
O0 (Linux* および macOS*) |
すべての最適化を無効にします。 このオプションは、ほかのオプションも設定します。設定されるオプションは、使用しているオペレーティング・システムやアーキテクチャーに応じてコンパイラーにより決定され、バージョンによって異なる場合があります。 |
O1 |
速度の最適化を有効にし、コードサイズを大きくするだけで高速化に影響を与えるような一部の最適化を無効にします。
このオプションは、ほかのオプションも設定します。設定されるオプションは、使用しているオペレーティング・システムやアーキテクチャーに応じてコンパイラーにより決定され、バージョンによって異なる場合があります。 O1 オプションは、分岐が多く、実行時間がループ内のコードに支配されない、非常に大きなコードサイズのアプリケーションでパフォーマンスを向上させます。 |
O2 |
速度の最適化を有効にします。一般的に推奨される最適化レベルです。 これは C++ 固有のコンテンツです。DPC++ には適用されません。 このオプションにより以下も有効になります。
このオプションは、ほかのオプション、特にコードの速度を最適化するオプションも設定します。設定されるオプションは、使用しているオペレーティング・システムやアーキテクチャーに応じてコンパイラーにより決定され、バージョンによって異なる場合があります。 これは C++ 固有のコンテンツです。DPC++ には適用されません。 共有ライブラリーの多くのルーチンは、互換マイクロプロセッサーよりもインテル製マイクロプロセッサーでより高度に最適化されます。 |
O3 |
O2 最適化を行い、融合、アンロールとジャムのブロック、IF 文の折りたたみなど、より強力なループ変換を有効にします。 このオプションは、ほかのオプションも設定します。設定されるオプションは、使用しているオペレーティング・システムやアーキテクチャーに応じてコンパイラーにより決定され、バージョンによって異なる場合があります。 O3 の最適化は、ループ変換およびメモリーアクセス変換が行われない限り、パフォーマンスが向上しないことがあります。場合によっては、O2 の最適化よりも遅くなります。 O3 オプションは、浮動小数点演算を多用するループや大きなデータセットを処理するループを含むアプリケーションに推奨します。 共有ライブラリーの多くのルーチンは、互換マイクロプロセッサーよりもインテル製マイクロプロセッサーでより高度に最適化されます。 |
コマンドラインで最後に指定した O オプションは、その前に指定した他のオプションよりも優先されます。
Visual Studio*: [Optimization] > [Optimization]
Eclipse*: [General] > [Optimization Level]
Xcode*: [General] > [Optimization Level]
O0 |
Linux*: なし |