/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
Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.
Перейдите на страницу свойств Свойства конфигурации>Компоновщик>Система.
Измените одно из следующих свойств:
Размер фиксации стека
Размер резерва стека
Задание данного параметра компоновщика программным способом
- См. описание свойств StackCommitSize и StackReserveSize.