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


/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 не будет вызывать конструктор копирования или деструктор. Выписки выхода суммы к конструктору, деструктора и конструктор копии, чтобы увидеть эффект оптимизации возвращаемого значения Named при запуске программы. Именованная оптимизация возвращаемого значения в Visual C++ 2005 C. Дополнительные сведения в разделе в.

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