/O1、/O2 (プログラム サイズ、実行速度)
ファイルのサイズおよび速度に影響を与える、定義済みのオプション セットを選択します。
/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++ 2005 の名前付きな戻り値の最適化。
// 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」を参照してください。