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


/Oy (подавление указателей фрейма)

Отменяет создание указателей на фреймы в стеке вызовов.

Синтаксис

/Oy[-]

Замечания

Этот параметр повышает скорость вызова функций, поскольку при этом не требуется создавать и удалять указатели фрейма. Он также освобождает еще один регистр для общего использования.

/Oy включает пропуск указателя кадра и /Oy- отключает упущение. В компиляторах x64 недоступны /Oy и /Oy .

Если коду требуется адресация на основе кадров, можно указать параметр /Oy после параметра /Ox или использовать оптимизацию с аргументами "Y" и отключать для получения максимальной оптимизации с адресации на основе кадров. Компилятор обнаруживает большинство ситуаций, когда требуется адресация на основе кадров (например, с _alloca функциями и setjmp структурированной обработкой исключений).

Параметры /Ox (включение большинства оптимизаций скорости) и /O1, /O2 (свернутый размер, максимальная скорость) подразумевают /Oy. Указание /Oy- после параметра /Ox, /O1 или /O2 отключает /Oy, является ли оно явным или подразумеваемым.

Параметр компилятора /Oy упрощает использование отладчика, так как компилятор подавляет сведения о указателе кадра. Если указать параметр компилятора отладки (/Z7, /Zi, /ZI), рекомендуется указать параметр /Oy- после любых других параметров компилятора оптимизации.

Установка данного параметра компилятора в среде разработки Visual Studio

  1. Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.

  2. Выберите страницу свойств>конфигурации C/C++>Optimization.

  3. Измените свойство опущенных указателей кадров. Это свойство добавляет или удаляет только параметр /Oy . Если вы хотите добавить параметр /Oy, выберите страницу свойств командной строки и измените дополнительные параметры.

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

См. также

Параметры /O (оптимизация кода)
Параметры компилятора MSVC
Синтаксис командной строки компилятора MSVC