在Jupyter Notebook中删除后释放内存

3

我在Jupyter Notebook中使用del list_of_df删除了一些变量。但我们发现,这些内容仍然占用着内存。因此,我们尝试使用%reset list_of_df,但是以前的变量名已经不存在了...除了重新启动内核来重新收集内存外,我们还能做什么呢?谢谢。

进一步地,更普遍地说,我可能已经失去了对巨大的Jupyter Notebook代码中已删除的内容的跟踪。是否有可能检查哪些已被删除但仍占用内存的内容,并将其删除?

1个回答

5

Python与C不同,你不需要手动释放内存。相反,所有的内存分配和释放任务都由后台的垃圾回收(GC)例程自动处理。GC使用惰性评估,这意味着内存可能不会立即被释放,而只有在需要时才会被释放(在理想情况下是这样的)。

虽然不建议在生产代码中使用,但如果你真的想要,在你del列表之后,你可以使用gc模块强制运行GC:

import gc
gc.collect()

但是,由于许多不同的原因,它实际上可能无法正常工作/释放内存。一般来说,最好让Python自动管理内存,不要进行干预。


我认为在CPython中,只要最后一个引用被删除,它就会被释放。 - Nils

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接