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


/STACK (Выделение стека)

/STACK:reserve[,commit]

Замечания

Параметр /STACK компоновщика задает размер стека в байтах. Этот параметр используется только при сборке .exe файла. Параметр /STACK игнорируется при применении к .dll файлам.

Значение reserve указывает общее выделение стека в виртуальной памяти. Для компьютеров ARM64, x86 и x64 размер стека по умолчанию составляет 1 МБ.

Значение commit подлежит интерпретации операционной системой. В WindowsRT он указывает объем физической памяти, выделяемой за раз. Зафиксированная виртуальная память приводит к зарезервированию места в файле разбиения на страницы. Более commit высокое значение экономит время, когда приложению требуется больше места в стеке, но увеличивает требования к памяти и, возможно, время запуска. Для компьютеров ARM64, x86 и x64 значение по умолчанию commit равно 4 КБ.

reserve Укажите и commit значения в десятичной или шестнадцатеричной нотации языка C (используйте 0x префикс).

Другим способом задать размер стека является STACKSIZE оператор в файле определения модуля (.def). STACKSIZE Переопределяет параметр выделения стека (/STACK) при указании обоих. Размер стека можно изменить после .exe создания файла с помощью EDITBIN средства.

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

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

  2. Перейдите на страницу свойств Свойства конфигурации>Компоновщик>Система.

  3. Измените одно из следующих свойств:

    • Размер фиксации стека

    • Размер резерва стека

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

  1. См. описание свойств StackCommitSize и StackReserveSize.

См. также

Справочник по компоновщику MSVC
Параметры компоновщика MSVC