Показать сообщение отдельно
  #1  
Старый 28.11.2010, 01:40
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию Утечки памяти

Возник такой вопрос.
Пишу программу. В ней много потоков, и они много чего делают. Каждый поток запускается по много раз. По завершению удаляется. И естественно все это сорит в памяти. Но есть несколько НО:
1) Очистку всех указателей я делаю. Побуквенно перечитывал код уже много раз - вроде все.
2) Все отработавшие потоки тут же удаляются (смотрел в дебаггере - все ок)

С памятью при этом творится нечто странное: например, при каждом запуске потока "РАЗ", выделенная память программе увеличивается на 4 или 8кб (что логично), но не чистится. Через где-то 10 запусков этого потока выделенная память перестает расти вообще.
Для другого потока "ДВА" че-то подобное: сначала резко выделяется куча памяти (20-40кб), а при последующих запусках по чуть-чуть (4кб).

Чем такое объяснить? Нормально ли это?
Программа рассчитана на ОЧЕНЬ долгую работу. Возможно это измеряется днями/неделями. Будет ли память дальше расти до бесконечности или нет?

Если нужны какие коды - скажите, не знаю чего к этому вопросу положить.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием