我在多线程代码中使用pandas.DataFrame
(实际上是DataFrame
的一个自定义子类,名为Sound
)。我注意到我有内存泄漏,因为我的程序的内存使用量逐渐增加了超过10mn,最终达到了我计算机内存的100%并崩溃。
我用objgraph试图跟踪这个漏洞,发现MyDataFrame
的实例数一直在上升,而不应该上升:它的run
方法中的每个线程都创建一个实例,进行一些计算,将结果保存到一个文件并退出。。。因此不应保留任何参考资料。
使用objgraph
我发现内存中的所有数据帧都有一个类似的引用图:
我不知道这是否正常。。。看起来这就是我记忆中的东西。有什么想法,建议,见解吗?
确认索引基础结构中存在某种内存泄漏。这是由上述参考图引起的而不是。让我们将讨论转移到GitHub(问答也是如此):
https://github.com/pydata/pandas/issues/2659
编辑:这看起来根本不是内存泄漏,但可能与操作系统内存分配问题有关。有关更多信息,请查看github问题
相关问题 更多 >
编程相关推荐