Python正在吞噬内存

Python正在吞噬内存,python,memory,Python,Memory,我确实有一个关于Python如何工作的一般性问题。 我在Ubuntu上从iPython(Spyder IDE内部)运行Python 2.7(或者在Windows上使用Anaconda,我也有同样的行为)。 我制作了一个可以运行数千个文件的工具。 即使在for循环结束时删除所有变量(我已经仔细检查了;没有庞大的列表或其他内容),甚至在计算结束时清除所有变量,Python也会充分利用内存。我必须“延迟内核”来卸载内存 最大程度上,由于要处理大量文件,RAM满后,它将进行交换,交换满后,它将完全冻结系

我确实有一个关于Python如何工作的一般性问题。 我在Ubuntu上从iPython(Spyder IDE内部)运行Python 2.7(或者在Windows上使用Anaconda,我也有同样的行为)。
我制作了一个可以运行数千个文件的工具。
即使在for循环结束时删除所有变量(我已经仔细检查了;没有庞大的列表或其他内容),甚至在计算结束时清除所有变量,Python也会充分利用内存。我必须“延迟内核”来卸载内存

最大程度上,由于要处理大量文件,RAM满后,它将进行交换,交换满后,它将完全冻结系统

有没有办法知道每个变量占用多少内存

我想知道Python如何“在后台”管理内存。

我显然不习惯这种事情。非常感谢您提供任何线索。

根据您的问题,您可以惰性地迭代文件(即,内存中只有少量数据-例如:)。为什么不说明你的问题到底是什么?你确定你正确地关闭了这些文件吗?是的。我真正不明白的是,即使通过Spyder中的python环境重置,它也会询问我是否确定要删除范围内的所有变量,我说“是”,并且内存仍然被充分利用。我必须重新启动Spyder中的内核(即Python内核),以释放Python使用的所有内存。
import gc
并在for循环结束时删除所有变量后添加:
gc.collect()
,似乎可以减轻问题!