Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.05.22;
Скачать: CL | DM;

Вниз

Out of memory while expanding memory stream   Найти похожие ветки 

 
NieL ©   (2011-02-11 18:11) [0]

изза-чего может возникнуть такая ошибка, памяти хватает


 
Palladin ©   (2011-02-11 18:27) [1]

если тебе говорят что не хватает, то ее не может хватать, хотя с другой стороны если тебе памяти не хватает, то программе может хватать, ведь скорее всего памяти хватало до этого, а теперь не хватает, и программе не хватает памяти, что бы вспомнить что раньше ей памяти хватало, вот по этому памяти и не хватает


 
Anatoly Podgoretsky ©   (2011-02-11 19:11) [2]

> Palladin  (11.02.2011 18:27:01)  [1]

Не хватает, вот он и забыл про это.


 
Token   (2011-02-11 20:08) [3]

А почему она возникает при выделении порядка 1Gb?


 
И. Павел ©   (2011-02-11 21:02) [4]

Не знаю, как экспандится поток, но может быть он сперва выделяет новую память, потом копирует в нее старые данные а затем удаляет старую память? Т.е. когда резервируется новая память, старая может еще не освобождаться. Такой подход, например, может приводить к нехватке памяти при SetLength очень больших массивов, когда памяти еще, казалось бы, хватает.


 
Token   (2011-02-11 21:12) [5]

Именно сразу после создания, устанавливается размер порядка 1Gb. И не хотит... Хотя теоретически принципиальных ограничений я не вижу.


 
Token   (2011-02-11 21:18) [6]

Уточню - D7


 
Palladin ©   (2011-02-11 21:19) [7]

все разговоры разговариваете, этим долго можно заниматься...
может на конкретику перейдете, станцуете или код покажете, на худой конец...
я вот взял переменную завел глобальненькую
var
 a: array of Integer;

кнопочку кинул на формочку написав в onclick
 SetLength(a, 1073741824 div 4);

и как то всем всего хватило

так что можете разговоры о теории разговаривать и дальше, но лично я вашему вранью о чистейшей правде и клятвах на святых бананах не поверю


 
Token   (2011-02-11 21:23) [8]

str:=TMemoryStream.Create;
str.SetSize(1500000000);
----
а вот str.SetSize(1600000000); уже не катит


 
Игорь Шевченко ©   (2011-02-11 21:27) [9]


> уже не катит


и не покатит


 
Token   (2011-02-11 21:28) [10]

Почему?


 
Игорь Шевченко ©   (2011-02-11 21:31) [11]


> Почему?


потому что дофига. В несчастные доступные 2гб еще надо впихнуть кучу всего - системные DLL, DLL приложения, само приложение, служебные структуры, и т.д.

проще узнать, сколько доступно и исходить из этого, а не желать странного и плакаться по форумам.


 
Token   (2011-02-11 21:35) [12]

Я не плачусь, я спросил.


 
Игорь Шевченко ©   (2011-02-11 21:39) [13]


> Я не плачусь, я спросил.


я автора имел в виду, если что


 
Token   (2011-02-11 21:54) [14]

Ну на самом деле, я воспользовался случаем для прояснения ) До этого думал что под систему есть 3-ий гиг, и все 2 остальные мои. И как-то не доходило, что все "изолировано" и библиотеки надо отображать в адреса приложения.


 
Anatoly Podgoretsky ©   (2011-02-12 10:12) [15]

> И. Павел  (11.02.2011 21:02:04)  [4]

А ты знаешь другой варинт, когда сначала удаляется старая память :-)


 
Anatoly Podgoretsky ©   (2011-02-12 10:13) [16]

> Palladin  (11.02.2011 21:19:07)  [7]

Надо - Мамой клянусь


 
Anatoly Podgoretsky ©   (2011-02-12 10:14) [17]

> Token  (11.02.2011 21:23:08)  [8]

А это где делаешь? ---- это не проясняет ситуацию


 
Anatoly Podgoretsky ©   (2011-02-12 10:15) [18]

> Token  (11.02.2011 21:35:12)  [12]

Ты не спросил, ты пургу несешь


 
Anatoly Podgoretsky ©   (2011-02-12 10:16) [19]


> я автора имел в виду, если что

А я обеих и в первую очередь второго.


 
Leonid Troyanovsky ©   (2011-02-12 11:32) [20]


> Anatoly Podgoretsky ©   (12.02.11 10:16) [19]

> > я автора имел в виду, если что

> А я обеих и в первую очередь второго.

И целовался на кухне с обоими.
:)

--
Regards, LVT.


 
DiamondShark ©   (2011-02-14 12:49) [21]

MemoryStream -- хороший пример плохой абстракции.

Напишите себе стрим на базе файла с атрибутами FILE_ATTRIBUTE_TEMPORARY
or FILE_FLAG_DELETE_ON_CLOSE

А про MemoryStream забудьте как о страшном сне.



Страницы: 1 вся ветка

Текущий архив: 2011.05.22;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.011 c
15-1296930362
Tonick2001
2011-02-05 21:26
2011.05.22
Передача данных


15-1296821313
qazxsw
2011-02-04 15:08
2011.05.22
Доступ к видио карте


2-1297334588
RUu
2011-02-10 13:43
2011.05.22
invalid pointer operation


15-1297115854
картман
2011-02-08 00:57
2011.05.22
запрос несуществующей странички


15-1296995151
SummerWind
2011-02-06 15:25
2011.05.22
getObject - Баг или фича?