Re: Один список на два потока - не освобождается память
От: Лекс Россия  
Дата: 14.10.05 12:42
Оценка:
Здравствуйте, SuperVK, Вы писали:

SVK>Не освобождается память при удалении элементов из списка и памяти.



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


Страуструп. "Язык программирования С++. Специальное издание. [стр. 920 — В.6 Управление памятью]:

Свободная память, которую явно требует программа при размещении объектов, и которую она может освободить после того, как память больше не нужна (при помощи new и delete). Когда программе требуется еще свободной памяти, new запрашивает ее у операционной системы. Как правило, свободная память (так же называемая динамической памятью или кучей) за время жизни программы разрастается, поскольку память никогда не возвращается операционной системе для использования другими программами.


Далее Страуструп пишет о автоматической сборке мусора и о подводных камнях для сборщика... общий смысл практически не меняется.
C Уважением,
Андрей.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.