我正在尝试理解python中的del
操作符。我正在合并两个大数据帧,并尝试删除参与的数据帧。
new_df = pd.merge(df1, df2, on='level', how='inner')
del df1
del df2
这将释放df1和df2分配的内存,还是只删除引用?
我也尝试过使用gc.collect
,但是在合并后的第一个操作中,我得到了一个内存错误
发布于 2018-03-06 17:21:54
不,del
与内存管理或垃圾收集没有任何关系。它只会减少一些叫做引用计数器的东西--每个对象都有一个。
一旦对象的引用计数器降到0,就意味着它不再可以通过任何变量访问,下次收集器执行它的操作时,它将被垃圾收集。
因此,总之,只要当前没有其他变量引用该对象,对对象的del
调用最终将在其内存中被回收。
还请参见Is there a way to get the current ref count of an object in Python?
https://stackoverflow.com/questions/49136549
复制相似问题