我在释放 Python 中字典的内存时遇到问题。我运行以下检查并跟踪进程内存使用情况:
a = dict()
for i in xrange(1000000):
a[i] = i
for i in xrange(1000000):
del a[i]
gc.collect()
Run Code Online (Sandbox Code Playgroud)
运行这些行后的内存使用量比以前高得多。我怎样才能释放所有内存?请注意,我不想删除字典本身。
谢谢。
简单地从字典中删除所有元素并不会从内存中删除字典。Python 使用引用计数技术。因此,只有当对象的引用计数降至 0 时,才准备好进行垃圾回收。因此,最好的选择是删除a对实际字典的引用,如下所示
a = None
Run Code Online (Sandbox Code Playgroud)
如果字典没有其他引用,则引用的字典a将被自动垃圾收集。
| 归档时间: |
|
| 查看次数: |
4715 次 |
| 最近记录: |