|
|
#1
|
||||
|
||||
Утечки памяти
Возник такой вопрос.
Пишу программу. В ней много потоков, и они много чего делают. Каждый поток запускается по много раз. По завершению удаляется. И естественно все это сорит в памяти. Но есть несколько НО: 1) Очистку всех указателей я делаю. Побуквенно перечитывал код уже много раз - вроде все. 2) Все отработавшие потоки тут же удаляются (смотрел в дебаггере - все ок) С памятью при этом творится нечто странное: например, при каждом запуске потока "РАЗ", выделенная память программе увеличивается на 4 или 8кб (что логично), но не чистится. Через где-то 10 запусков этого потока выделенная память перестает расти вообще. Для другого потока "ДВА" че-то подобное: сначала резко выделяется куча памяти (20-40кб), а при последующих запусках по чуть-чуть (4кб). Чем такое объяснить? Нормально ли это? Программа рассчитана на ОЧЕНЬ долгую работу. Возможно это измеряется днями/неделями. Будет ли память дальше расти до бесконечности или нет? Если нужны какие коды - скажите, не знаю чего к этому вопросу положить. jmp $ ; Happy End! The Cake Is A Lie. |