アプリケーションのコードの最適化を指定します。
Windows: [General (全般)] > [Optimization (最適化)] (/Od、/O1、/O2、/O3、/fast)
[Optimization (最適化)] > [Optimization (最適化)] (/Od、/O1、/O2、/O3、/fast)
Linux: なし
Mac OS X: [General (全般)] > [Optimization Level (最適化レベル)] (-O)
IA-32、インテル® 64、IA-64 アーキテクチャー
Linux および Mac OS X: |
-O[n] |
Windows: |
/O[n] |
n |
最適化レベル。設定可能な値は、1、2、または 3 です。Linux および Mac OS X システムでは、0 も指定できます。 |
O2 |
速度について最適化します。このデフォルトは、指定されているコンパイラーに応じて変更されます。詳細は、下記を参照してください。 |
このオプションは、アプリケーションのコードの最適化を指定します。
オプション |
説明 |
---|---|
O (Linux および Mac OS X) |
O2 を指定した場合と同じです。 |
O0 (Linux および Mac OS X) |
すべての最適化を無効にします。IA-32 およびインテル® 64 アーキテクチャー・ベースのシステムでは、このオプションは -fno-omit-frame-pointer オプションおよび -fmath-errno オプションを設定します。 このオプションを指定すると、一部の warn オプションは無視されます。これは、-debug (keyword なし) を指定した場合のデフォルトです。 |
O1 |
速度の最適化を有効にし、コードサイズを大きくするだけで高速化に影響を与えるような一部の最適化を無効にします。
IA-64 アーキテクチャー・ベースのシステムでは、このオプションは、サーバー・アプリケーションの最適化も有効にします (フラット・プロファイルの直列型コードおよび分岐型コード)。O1 オプションは、次のオプションを設定します。
O1 オプションは、分岐が多く、実行時間がループ内のコードに支配されない、非常に大きなコードサイズのアプリケーションでパフォーマンスを向上させます。 |
O2 |
速度の最適化を有効にします。一般的に推奨される最適化レベルです。
Windows システムでは、このオプションは Ox オプションと同じです。 O2 オプションは、次のオプションを設定します。
Linux および Mac OS X システムで -g を指定する場合、コマンドラインで -g とともに O2 (または O1 または O3) が明示的に指定されていなければ、デフォルトの O2 オプションをオフにして O0 をデフォルトにします。 このオプションは、コードの速度を最適化するほかのオプションも設定します。設定されるオプションは、使用しているアーキテクチャーとオペレーティング・システムに基づいて、コンパイラーによって決定されます。 |
O3 |
O2 の最適化に加えて、プリフェッチ、スカラー置換、ループ変換、およびメモリーアクセス変換などのより強力な最適化を有効にします。次のような、速度を最大限にする最適化を有効にします。
Windows システムでは、O3 オプションは /Ob2 オプションを設定します。 Linux および Mac OS X システムでは、O3 オプションは -fomit-frame-pointer オプションを設定します。 IA-32 またはインテル® 64 アーキテクチャー・ベースのシステムでは、O3 オプションを -ax または -x (Linux)、/Qax または /Qx (Windows) オプションと組み合わせて使用すると、O2 よりも詳細にデータの依存性を分析します。そのため、コンパイル時間が長くなる場合があります。 O3 の最適化は、ループ変換およびメモリーアクセス変換が行われない限り、パフォーマンスが向上しないことがあります。場合によっては、O2 の最適化よりも遅くなります。 |
コマンドラインで最後に指定した O オプションは、その前に指定した他のオプションよりも優先されます。
O で設定されるオプションは、バージョンによって変更される場合があります。
O1 |
Linux および Mac OS X: なし |
O2 |
Linux および Mac OS X: なし |
O3 |
Linux および Mac OS X: なし |
O4 |
Linux および Mac OS X: なし |