/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 関数はコンストラクターまたはデストラクターのコピーを作成しません。プログラムを実行すると名前付き戻り値の最適化の動作を確認するにはコンストラクターデストラクターおよびコピー コンストラクターに出力ステートメントを追加します。詳細については" " を参照してください。
// 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 を参照してください。