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


/O1, /O2 (минимизировать размер, максимизировать скорость)

Обновлен: Ноябрь 2007

Выбирает предварительно установленный набор параметров, которые влияют на размер файлов и быстродействие.

 /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.

// 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 (модель обработки исключений)