Поделиться через


/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

  1. Откройте диалоговое окно Страницы свойств проекта. Дополнительные сведения см. в разделе Открытие свойств страниц проекта.

  2. Выберите папку C/C++.

  3. Выберите страницу свойств Оптимизация.

  4. Измените значение свойства Оптимизация.

Установка параметра компилятора программным способом

См. также

Ссылки

Параметры /O (оптимизация кода)

Параметры компилятора

Настройка параметров компилятора

Параметр /EH (модель обработки исключений)