Tha*_*eed 6 python pandas jupyter-notebook
我试图弄清楚如何在jupyter笔记本上工作时释放python对象占用的空间。
在特定的场景中,我正在处理多个大型数据框,完成一些计算后,我想加载一个新的数据框。
但是,这总是会导致内存错误,并且我的系统开始冻结。
所以我想我将尝试删除python对象。
到目前为止我尝试过的事情:
1.使用del并调用垃圾收集器
del pyobject
import gc
gc.collect()
Run Code Online (Sandbox Code Playgroud)
使用IPython Magic命令
%reset_selective -f pyobject
这两种方法均无法真正释放内存。查看htop命令后,我发现jupyter笔记本计算机仍在使用20GB的RAM。仅当我重新启动内核时,它们的内存才被释放(但是后来我失去了下一步数据分析所需的所有其他变量)
确保您的数据不存在其他引用。没有基于该数组的其他视图吗?您可以使用get_referrers获取包含对某些内容的引用的对象
如果有任何观点,您应该将其复制。特别是 ipython 倾向于在名为 的变量中保留对先前评估的引用_, _1, _23 etc
。%reset_selective 应该清除这些。