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


/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. Измените свойство Порядок функций.

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

См. также

Ссылки

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

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