Я являюсь членом команды, которая разрабатывает приложение Delphi. Требования к памяти огромны. 500 МБ - это нормально, но в некоторых случаях это исключение из памяти. Объем памяти, выделяемой в этих случаях, обычно составляет от 1000 до 1700 МБ.
Нам, конечно, нужен 64-битный компилятор, но сейчас этого не произойдет (и если это произойдет, мы также должны конвертировать в Unicode, но это уже другая история ...).
Мой вопрос заключается в том, почему при работе в 64-битной среде существует ограничение в 2 ГБ на процесс. Указатель 32-битный, поэтому я думаю, что 4 ГБ будет правильным пределом.
Я использую Delphi 2007.
EDIT:
Поэтому, если я установлю флаг IMAGE_FILE_LARGE_ADDRESS_AWARE в Delphi с помощью:
{$SetPeFlags IMAGE_FILE_LARGE_ADDRESS_AWARE}
И, запустив получившийся Exe-файл на Windows Server 2003 x64, тогда приложение может адресовать 4 ГБ?
- Должен ли я установить переключатель / 3GB в boot.ini?
- Мы пробовали это, но на 32-битной Windows Server 2003, и это, похоже, ограничивает ресурсы Windows. В журнале было больше исключений для «Недостаточно памяти» с GDIError. Но, может быть, это исчезнет при работе в 64-битной ОС?