/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++ 中具名傳回值最佳化的詳細資訊,請參閱 https://go.microsoft.com/fwlink?linkid=55900。
// 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 開發環境中設定這個編譯器選項
開啟專案的 [屬性頁] 對話方塊。 如需詳細資訊,請參閱 HOW TO:開啟專案屬性頁。
按一下 [C/C++] 資料夾。
按一下 [最佳化] 屬性頁。
修改 [最佳化] 屬性。
若要以程式方式設定這個編譯器選項
- 請參閱 Optimization。