Я участвую в команде, которая разрабатывает приложение Delphi. Требования к памяти огромны. 500 МБ - это нормально, но в некоторых случаях это исключение из памяти. Память, выделенная в этих случаях, обычно составляет от 1000 до 1700 МБ.
Мы, конечно, хотим 64-битный компилятор, но это не произойдет сейчас (и если это произойдет, мы также должны преобразовать в unicode, но это еще одна история...).
Мой вопрос в том, почему существует ограничение на 2 ГБ памяти для каждого процесса при работе в 64-битной среде. Указатель 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. За исключением "Out of memory" с GDIError в журнале было больше исключений. Но может быть, это исчезнет при работе в 64-битной ОС?