![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Out of memory после полумесяца работы программы.
Дмитрий Белькевич © (2011-06-07 10:46:00)Утечек памяти нет (судя по эврикалог). Out of memory случается где-то на 10-15 день работы приложения. Случается при попытке выделения памяти под динамический массив:
SetLength(FBuff16, AllocSLiceSz div 2);
AllocSLiceSz равен 31768000, т.е. выделяется около 31 мб.
Использую менеджер памяти FastMM.
Вопросов, как обычно, два - кто виноват и что делать...
RWolf (2011-06-07 13:55:00) [41]или создавать, но не из-под FastMM, а средствами ОС.
Sha (2011-06-07 13:50:00) [42]Можно его не удалять, чтобы потом не создавать.
RWolf (2011-06-07 13:14:00) [43]это какой-то временный буфер? может, размещать его на стеке?
QAZ (2011-06-07 13:02:00) [44]а зачем эврика если FastMM сам все тожет определять
Ega23 (2011-06-07 11:50:00) [45]
> Случается при попытке выделения памяти под динамический
> массив:
Фрагментация.
Как вариант - либо перезапускать время от времени, либо сразу здоровый массив выделить на 100 мб и работать с ним постоянно, без реаллоков.
clickmaker (2011-06-07 11:14:00) [46]> что делать
как вариант - перезапускать раз в несколько суток (планировщиком задач, к примеру)
Либо пересмотреть логику распределения памяти
Anatoly Podgoretsky (2011-06-07 11:02:00) [47]Странный вопрос "кто виноват", ответ бить. На лицо фрагментация памяти.