python列表在清除列表的元素后未释放内存



我在用python 2.7编写的长时间运行的python脚本中使用了大量列表。我正在使用pympler来识别泄漏的内存,我发现列表对象内存正在增加。但我在每次迭代中都清除了所有列表。RES内存正在大幅增加。执行3分钟后,脚本占用130 MB的RES内存,我已经清除了所有列表,并删除了每次迭代中引用的所有对象。我使用清除列表

del list1[:]

我使用删除引用的对象

obj=demo_class()
some code
del obj

请帮我减少RES内存?

谢谢PyNico,我尝试过删除对对象的引用并手动使用gc.collect(),但没有效果。

我在脚本中使用了4个字典。当我使用pympler运行脚本以查找内存泄漏时,我发现列表对象的大小正在难以置信地增加。这些列表包含这些字典的关键字这些列表是在python字典的构建实现中列出的吗

看看这个。它解释了为什么del关键字不能清除内存->http://effbot.org/pyfaq/why-doesnt-python-release-the-memory-when-i-delete-a-large-object.htm

您应该删除对对象的所有引用,然后使用gc.collect()

最新更新