python 进程的内存使用量逐日增加

use*_*997 5 python memory performance memory-leaks

设想:

我有一个连续运行的 python 进程(直到我们手动停止 - 无限地)并通过每 1 分钟读取某些系统文件来收集数据。当它启动时,它占用大约25 MB。但占用的内存量一天天增加,15天后就超过了500MB。

  • 我是一个Python新手,所以无法通过手动/使用调试器检查代码来找出问题,
  • 我不知道有什么工具可以轻松发现问题,请建议一些可以帮助我发现问题的工具或方法。
  • 我认为这可能是内存泄漏问题或变量一次又一次地向其附加数据,并且根本没有释放它......请向我指出某些参考文献,它们可以帮助我理解 python 中的此类问题。

希望细节足够清楚,更多细节请告诉我,我可以澄清。

更新

我试图按照这个线程显示正在运行的Python应用程序的堆栈跟踪,但我面临以下无法完全解决的错误。

  • 当前上下文中没有符号“PyEval_EvalFrameEx”。
  • 当前上下文中没有符号“PyStringObject”。

我搜索找到了这样的方法,可以挂钩已经运行的进程并获取堆栈/内存信息。但还没有运气,请帮助我。

Vin*_*jip 3

使用Dowser帮助跟踪内存泄漏。它使用 CherryPy 作为 Web 服务器,即使您不开发 Web 应用程序,它也可以从浏览器向您提供内存分配视图。

另请参阅这篇文章,您可能会感兴趣。使用 Dowser,您应该能够看到进程内存中悬挂着哪些意外对象。