/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
Откройте диалоговое окно Страницы свойств проекта. Дополнительные сведения см. в разделе Открытие свойств страниц проекта.
Выберите папку C/C++.
Выберите страницу свойств Оптимизация.
Измените значение свойства Оптимизация.
Установка параметра компилятора программным способом
- См. раздел Optimization.
См. также
Ссылки
Параметры /O (оптимизация кода)