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

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

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

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

Сообщение ZW » 02.11.2006 21:00:24

Объясните пожайлуста такой момент: программа при достижении примерно чуть больше 2 Гбайтов вываливается с EOutOfMemory : Out of memory.
Что нибудь можно с этим сделать?
ZW
новенький
 
Сообщения: 26
Зарегистрирован: 16.08.2006 15:11:23

Сообщение Сквозняк » 02.11.2006 22:00:26

Поппобуй использовать переменные типа INT64 или более новую версию комилятора.
Сквозняк
энтузиаст
 
Сообщения: 1126
Зарегистрирован: 29.06.2006 22:08:32

Сообщение Alexander » 03.11.2006 00:37:54

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

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


Не советую. Процессор пока не научился такие памяти на программу
выделять. :))
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 821
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Сообщение Sergei I. Gorelkin » 03.11.2006 12:52:50

4 гига - это все адресное пространство. Из них 2 может выделяться программе, оставшиеся 2 используются для нужд системы (общие библиотеки, memory mapped files и т.д.). В WinNT системах можно указать какой-то ключ (точно не помню) в файле boot.ini, чтобы программам выделялось 3 гига из 4. Но все 4 отхапать не удастся, и компилятор тут ни при чем...
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1406
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение SergKam » 03.11.2006 14:50:43

да гдето уже это обсуждалось. для этого кстати переходят на 64 битные процы. в win64 такого уже не должнобыть
SergKam
постоялец
 
Сообщения: 251
Зарегистрирован: 16.11.2005 21:31:11
Откуда: Украина,Харьков

Сообщение Alexander » 04.11.2006 13:55:03

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

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


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

Поправте, если вру.
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 821
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Сообщение Replicator » 04.11.2006 14:43:44

Это в Windows. Адресное пространство приложения и правда равно 4 GB, но программа не может использовать все свое адресное пространство, так как половина из него отводитса для нужд OS, таких как загрузка библиотек и т.п.
Replicator
постоялец
 
Сообщения: 154
Зарегистрирован: 30.04.2006 17:14:45
Откуда: Outer Heaven

Сообщение Сквозняк » 04.11.2006 14:44:50

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


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

Рейтинг@Mail.ru