Игнат
Сен. 29, 2011 21:38:44
питон 3.2
работает доп. поток и постепенно складывает данные в одну общую переменную в главном потоке
таким образом имеем:
self.storage = “данные”
после использования удаляю ключ и его данные:
del self.storage
но память как жрал так и жрет.
Вопрос вот какой - действительно ли del удаляет элемент словаря и возвращает память операционной системе?
Как гарантированно вернуть память в ОС?
ziro
Сен. 30, 2011 10:21:29
del таки не совсем удаляет объекты из памяти, а только уменьшает счетчик ссылок на объект, ну и в данном случае еще убирает ключ из словаря. Удаляет объекты сборщик мусора, но только объекты для которых счетчик ссылок равен нулю. Сборщик запускается или сам, когда сочтет нужным или это можно сделать принудительно через gc.collect. Так что смотрите - или у Вас еще где-то ссылки на данные хранятся, или надо принудительно gc.collect запускать. Лично мне gc.collect понадобился пока только один раз в жизни.