/O1、/O2 (プログラム サイズ、実行速度)
更新 : 2007 年 11 月
ファイルのサイズおよび速度に影響を与える、定義済みのオプション セットを選択します。
/O1
/O2
解説
/O1 および /O2 について次の表で説明します。
オプション |
等価オプション |
説明 |
---|---|---|
/O1 (最小サイズ) |
/Og/Os/Oy/Ob2/Gs/GF/Gy |
ほとんどの場合、最小サイズのコードを作成します。 |
/O2 (最高速度) |
/Og/Oi/Ot/Oy/Ob2/Gs/GF/Gy |
ほとんどの場合、最高速のコードを作成します。これは、リリース ビルドの既定の設定です。 |
/O1 と /O2 を選択すると、名前付き戻り値の最適化も有効になります。この最適化では、スタック ベースの戻り値のコンストラクタとデストラクタがコピーされません。次のサンプルを例に取ります。Test 関数はコンストラクタまたはデストラクタのコピーを作成しません。プログラムの実行時の名前付き戻り値の最適化の動作を確認するには、出力ステートメントをコンストラクタ、デストラクタ、およびコピー コンストラクタに追加します。Visual C++ の名前付き戻り値の最適化の詳細については、https://go.microsoft.com/fwlink?linkid を参照してください。
// O1_O2_NRVO.cpp
// compile with: /O1
struct A {
A() {}
~A() {}
A(const A& aa) {}
};
A Test() {
A a;
return a;
}
int main() {
A aa;
aa = Test();
}
x86 固有の仕様→
これらのオプションでは、/Oy (フレーム ポインタの省略) オプションを暗黙で使うことになります。
← x86 固有の仕様
Visual Studio 開発環境でこのコンパイラ オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。詳細については、「方法 : プロジェクト プロパティ ページを開く」を参照してください。
[C/C++] フォルダをクリックします。
[最適化] プロパティ ページをクリックします。
[最適化] プロパティを変更します。
このコンパイラ オプションをコードから設定するには
- Optimization を参照してください。