память - EOutOfMemory : Out of memory

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
ZW
новенький
Сообщения: 26
Зарегистрирован: 16.08.2006 15:11:23

память - EOutOfMemory : Out of memory

Сообщение ZW »

Объясните пожайлуста такой момент: программа при достижении примерно чуть больше 2 Гбайтов вываливается с EOutOfMemory : Out of memory.
Что нибудь можно с этим сделать?
Сквозняк
энтузиаст
Сообщения: 1159
Зарегистрирован: 29.06.2006 22:08:32

Сообщение Сквозняк »

Поппобуй использовать переменные типа INT64 или более новую версию комилятора.
Аватара пользователя
Alexander
энтузиаст
Сообщения: 866
Зарегистрирован: 18.12.2005 18:10:00
Откуда: оттуда
Контактная информация:

Сообщение Alexander »

Ну по идее должно быть до 4х гигов. Может и баг (компилятора или оси).

Сквозняк писал(а):Поппобуй использовать переменные типа INT64 или более новую версию комилятора.


Не советую. Процессор пока не научился такие памяти на программу
выделять. :))
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

4 гига - это все адресное пространство. Из них 2 может выделяться программе, оставшиеся 2 используются для нужд системы (общие библиотеки, memory mapped files и т.д.). В WinNT системах можно указать какой-то ключ (точно не помню) в файле boot.ini, чтобы программам выделялось 3 гига из 4. Но все 4 отхапать не удастся, и компилятор тут ни при чем...
SergKam
постоялец
Сообщения: 251
Зарегистрирован: 16.11.2005 20:31:11
Откуда: Украина,Харьков

Сообщение SergKam »

да гдето уже это обсуждалось. для этого кстати переходят на 64 битные процы. в win64 такого уже не должнобыть
Аватара пользователя
Alexander
энтузиаст
Сообщения: 866
Зарегистрирован: 18.12.2005 18:10:00
Откуда: оттуда
Контактная информация:

Сообщение Alexander »

По моему гдето я читал, что на одно приложение даже в 64 битных
процах - 32 бита. Но могу ошибаться.

Sergei I. Gorelkin писал(а): Из них 2 может выделяться программе, оставшиеся 2 используются для нужд системы


Это в Вин, в Линуксе или в процессоре ? Если я правильно понимаю,
адресное пространство приложения должно быть 4 гига.

Поправте, если вру.
Replicator
постоялец
Сообщения: 154
Зарегистрирован: 30.04.2006 17:14:45
Откуда: Outer Heaven
Контактная информация:

Сообщение Replicator »

Это в Windows. Адресное пространство приложения и правда равно 4 GB, но программа не может использовать все свое адресное пространство, так как половина из него отводитса для нужд OS, таких как загрузка библиотек и т.п.
Сквозняк
энтузиаст
Сообщения: 1159
Зарегистрирован: 29.06.2006 22:08:32

Сообщение Сквозняк »

У меня в линуксе такое сообщение вываливалось при работе с файлом, там INT64 помогло. К сожалению у компа 3 гига памяти максимально, стоит 768 грязными. Так что эксперименты временно откладываются.
Ответить