Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 29, 2011 21:38:44

Игнат
От:
Зарегистрирован: 2010-10-02
Сообщения: 224
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос про освобождение памяти

питон 3.2

работает доп. поток и постепенно складывает данные в одну общую переменную в главном потоке

таким образом имеем:

self.storage = “данные”

после использования удаляю ключ и его данные:

del self.storage

но память как жрал так и жрет.

Вопрос вот какой - действительно ли del удаляет элемент словаря и возвращает память операционной системе?
Как гарантированно вернуть память в ОС?



Офлайн

#2 Сен. 30, 2011 10:21:29

ziro
От:
Зарегистрирован: 2009-08-13
Сообщения: 225
Репутация: +  8  -
Профиль   Отправить e-mail  

вопрос про освобождение памяти

del таки не совсем удаляет объекты из памяти, а только уменьшает счетчик ссылок на объект, ну и в данном случае еще убирает ключ из словаря. Удаляет объекты сборщик мусора, но только объекты для которых счетчик ссылок равен нулю. Сборщик запускается или сам, когда сочтет нужным или это можно сделать принудительно через gc.collect. Так что смотрите - или у Вас еще где-то ссылки на данные хранятся, или надо принудительно gc.collect запускать. Лично мне gc.collect понадобился пока только один раз в жизни.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version