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


/ORDER (размещение функций по порядку)

/ORDER:@filename

Параметры

  • filename
    Текстовый файл, в котором указывается порядок компоновки функций COMDAT.

Заметки

При использовании параметра /ORDER компоновщик LINK оптимизирует программу, размещая определенные функции COMDAT в образе в указанном порядке.LINK размещает функции в указанном порядке в каждом разделе образа.

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

Программа LINK использует декорированную форму идентификаторов.Компилятор декорирует идентификатор при создании OBJ-файла.Если декорированную форму идентификатора необходимо указать в параметрах компоновщика, для его получения можно использовать средство DUMPBIN.Дополнительные сведения о декорированных именах см. в разделе Декорированные имена.

Если задано более одного параметра /ORDER, используется последний заданный из них.

Указание порядка позволяет оптимизировать поведение программы при разбивке по страницам за счет настройки файла подкачки, а именно группирования функции с функциями, которые он вызывает.Также можно сгруппировать наиболее часто вызываемые функции.Эти методы позволяют увеличить вероятность того, что вызванная функция расположена в памяти, когда необходимо, и ее не требуется загружать с диска.

Компоновщик вставляет символ подчеркивания (_) перед каждым декорированным именем в файле имя_файла кроме тех случаев, когда имя начинается с вопросительного знака (?) или знака @.Например, если в объектном файле содержится extern "C" int func(int) и int main(void), после выполнения команды DUMPBIN /SYMBOLS отображаются эти декорированные имена:

009 00000000 SECT3  notype ()    External     | _func
00A 00000008 SECT3  notype ()    External     | _main

Но имена, указанные в файле порядка, должны выглядеть как func и main.

Параметр /ORDER отключает инкрементное построение.

ПримечаниеПримечание

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

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

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

  2. Выберите папку Компоновщик.

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

  4. Измените свойство Порядок функций.

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

  • Дополнительные сведения см. в разделе FunctionOrder.

См. также

Ссылки

Настройка параметров компоновщика

Параметры компоновщика