Python释放字典的内存
我在使用Python中的字典时遇到了一个问题,想要释放它占用的内存。
a = dict()
for i in xrange(1000000):
a[i] = i
for i in xrange(1000000):
del a[i]
gc.collect()
我运行这些代码后,发现内存使用量比之前高了很多。请问我该如何释放所有的内存?需要注意的是,我并不想删除这个字典本身。
谢谢。
1 个回答
4
光是把字典里的所有元素删掉,并不能把这个字典从内存中移除。Python使用了一种叫做引用计数的技术。只有当一个对象的引用计数降到0的时候,它才会被准备好进行垃圾回收。所以,最好的办法是把引用a
从指向这个字典中去掉,像这样做:
a = None
如果这个字典没有其他的引用,那么a
所指向的字典就会自动被垃圾回收。