熊猫记忆释放
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?
以上是关于熊猫记忆释放的主要内容,如果未能解决你的问题,请参考以下文章