Я предполагаю, что исполняемый файл должен иметь установленный флаг.
Лучше проверьте это с помощью инструмента, например, vmmap
из пакета sysinternals.
Но фрагментация памяти может не разрешать два блока размером 1 ГБ, даже если приложение имеет 4 ГБ адресного пространства. Самый большой свободный блок ниже 2 ГБ, как правило, немного меньше, чем один ГБ, и выше 2 ГБ обычно есть небольшой материал, который мешает вам выделить все это.
Обратите внимание, что в управлении кучей есть некоторые накладные расходы - ваши 1 ГБ блоки действительно потребуют 1 ГБ плюс пару байт свободного места.