熊猫记忆释放

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了熊猫记忆释放相关的知识,希望对你有一定的参考价值。

我试图理解python中的del运算符。我正在合并两个大数据帧并尝试删除参与的数据帧。

new_df = pd.merge(df1, df2, on='level', how='inner')
del df1
del df2

这会释放由df1和df2分配的内存还是只删除引用?

我也尝试过使用gc.collect,但是在合并后的第一个操作中我遇到了内存错误

答案

不,del与内存管理或垃圾收集没有任何关系。它只减少称为引用计数器的东西 - 每个对象都有一个。

一旦对象的引用计数器降为0,这意味着它不再可以通过任何变量访问,并且在下次收集器执行其操作时将被垃圾收集。

因此,总而言之,只要没有其他变量当前引用该对象,在对象上调用del最终将在其回收的内存中结束。

另见Is there a way to get the current ref count of an object in Python?

以上是关于熊猫记忆释放的主要内容,如果未能解决你的问题,请参考以下文章

python 有用的熊猫片段

python 有用的熊猫片段

python 有用的熊猫片段

python 有用的熊猫片段

python 有用的熊猫片段

python 有用的熊猫片段