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


/GL (оптимизация всей программы)

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

Включает оптимизацию всей программы.

 /GL[-]

Заметки

Оптимизация всей программы позволяет компилятору выполнять оптимизацию с помощью информации о всех модулях в программе. Если оптимизация всей программы не включена, оптимизация выполняется отдельно для каждого модуля (объекта компиляции).

Оптимизация всей программы по умолчанию отключена и должна включаться явным образом. В то же время ее также можно явным образом отключить с помощью параметра /GL-.

Компилятор может производить следующие действия с помощью информации о всех модулях:

  • Оптимизировать использование регистров за границами функций.

  • Улучшенным образом отслеживать изменение глобальных данных, что позволит уменьшить число загрузок и сохранений.

  • Улучшенным образом отслеживать возможные наборы элементов, измененных разыменованием указателя, что позволит уменьшить число загрузок и сохранений.

  • Встраивать функцию в модуль даже в том случае, если функция определена в другом модуле.

OBJ-файлы, созданные с помощью параметра /GL, не будут доступны таким средствам компоновщика, как Справочник ЕDITBIN и Справочник DUMPBIN.

Если программа компилируется с помощью параметров**/GL** и Параметр /c (компиляция без связывания), для создания выходного файла необходимо использовать параметр компоновщика /LTCG.

Параметры /Z7, /Zi, /ZI (формат отладочной информации) нельзя использовать вместе с параметром /GL

Формат файлов, создаваемых с помощью параметра /GL в текущей версии, может не восприниматься последующими версиями Visual C++. Включать в поставку LIB-файл, состоящий из OBJ-файлов, созданных с помощью параметра /GL, следует только в том случае, если требуется включить в поставку копии LIB-файла для всех версий Visual C++, которые пользователи используют сейчас и могут использовать в будущем.

OBJ-файлы, созданные с помощью параметра /GL, и файлы предкомпилированных заголовков не следует использовать для построения LIB-файла, если LIB-файл не будет компоноваться на том же компьютере, на котором с помощью параметра /GL был создан OBJ-файл. Данные из файла предкомпилированного заголовка OBJ-файла потребуются во время компоновки.

Дополнительные данные по доступным возможностям оптимизации и ограничениям оптимизации всей программы см. в разделе Параметр /LTCG (создание кода во время компоновки). Параметр /GL также предоставляет возможность оптимизации с использованием профиля; см. описание параметра /LTCG. При компиляции с оптимизацией с использованием профиля и необходимости упорядочивания функций на основе оптимизации с использованием профиля следует использовать при компиляции параметр /Gy (включение компоновки на уровне функций) или другой параметр компилятора, подразумевающий параметр /Gy.

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

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

См. также

Ссылки

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

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