(i)即使在对变量进行删除之后,python2.7也会占用大量内存

时间:2015-08-06 09:37:06

标签: python-2.7 memory-management memory-leaks ipython

我已经多次体验过这种情况,并且无法完全调试它。每当我加载一些大型数据集,占用几个GB的RAM时,将其处理成一些机器学习模型(在这种特殊情况下,训练成TFIDF模型的大文档列表),直接在加载数据后,大多数我的记忆被消耗了(在这种情况下是79%),在我训练了TFIDF后,使用了更多(通常多1-2%)。

所以我决定删除数据集(使用del),因为我只需要模型。即使在调用垃圾收集(使用gc.collect())之后,执行此操作也不会返回任何内存。此外,如果我用whos检查工作区中的内容(我使用ipython2.7),并逐个删除所有变量,则不返回任何内存。它只在我关闭进程时返回。

但是,当我挑选TFIDF模型时,关闭ipython并重新启动它,打开pickle并不会占用太多内存。

为什么没有(i)python2.7在删除变量后返回内存?为什么没有变量的ipython进程需要8.9GB的内存?

memory example

0 个答案:

没有答案