发布
社区首页 >问答首页 >熊猫记忆释放

熊猫记忆释放
EN

Stack Overflow用户
提问于 2018-03-06 17:19:25
回答 1查看 548关注 0票数 2

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

代码语言:javascript
代码运行次数:0
复制
new_df = pd.merge(df1, df2, on='level', how='inner')
del df1
del df2

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-06 17:21:54

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

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

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

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49136549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档