gc.collect是否为我删除的变量释放内存?

时间:2015-10-20 13:24:26

标签: python garbage-collection

如果我使用del huge_object,之后使用gc.collect()会释放huge_object

所占用的内存

1 个答案:

答案 0 :(得分:1)

简短回答:这取决于......

答案很长:这取决于huge_object是否是实际对象的最后一个引用。如果是(例如因为它是唯一存在的引用),该对象将被标记为垃圾收集,并且其内存将由n gc.collect()回收。但事实并非如此:

huge_object = Huge_Class()
x = huge_object
del huge_object
gc.collect() # does not free memory for the huge object

只有引用被破坏,只要x存在,对象就会保持活着。