12

pandas.DataFrame在多线程代码中使用(实际上是DataFrame被调用的自定义子类Sound)。我注意到我有内存泄漏,因为我的程序的内存使用量逐渐增加超过 1000 万,最终达到我的计算机内存的 ~100% 并崩溃。

我使用objgraph尝试跟踪此泄漏,并发现实例的数量MyDataFrame一直在增加,而它不应该:其run方法中的每个线程都创建一个实例,进行一些计算,将结果保存在一个文件中并退出......所以不应该保留任何引用。

使用objgraph我发现内存中的所有数据帧都有类似的参考图:

在此处输入图像描述

我不知道这是否正常……看起来这就是将我的对象保存在内存中的原因。任何想法,建议,见解?

4

1 回答 1

13

确认索引基础设施中存在某种内存泄漏。这不是由上述参考图引起的。让我们将讨论移至 GitHub(SO 用于 Q&A):

https://github.com/pydata/pandas/issues/2659

编辑:这实际上似乎根本不是内存泄漏,但可能与操作系统内存分配问题有关。请查看 github 问题以获取更多信息

于 2013-01-08T21:35:53.490 回答