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

Does gc.collect release memory for variables that I've deleted?

如果我使用 del huge_object 然后使用 gc.collect() 它会释放被 huge_object

占用的内存吗

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

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

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

只有引用被销毁,只要 x 存在,对象就会一直存在。