【发布时间】:2012-10-19 12:58:30
【问题描述】:
我有一个泄漏内存的multiprocessing 应用程序。但是,泄漏不在主进程中(根据Dowser 和top),而是在子进程中。有什么方法可以在子进程上使用 Dowser(或类似工具)来跟踪泄漏?如果没有,如何追踪?
更新:我花了很多时间尝试使用heapy 和gnibbler's code,但我找不到泄漏点。然后我在主进程中停止了cherrypy,并在子进程中启动了另一个(使用Dowser)。但几分钟后,CherryPy 将停止监听端口... :( 所以我仍在寻找更好的主意。
【问题讨论】:
-
我花了最后一个小时试图弄清楚如何使用它。我能找到的最佳文档是here,但我仍然无法获得构成大部分空间的对象列表。你是怎么用的?
-
泄漏了多少?您确定它实际上是在泄漏内存,而不是错误地计算了主进程和子进程之间的共享内存吗?
-
每个进程(我有 40 个)每天泄漏大约 30MB,因此非常明显。此外,系统最终开始使用交换并变得无响应。你知道如何调试子进程的内存使用吗?
标签: python memory-leaks multiprocessing