Dic*_*eed 31 python debugging memory-leaks twisted
可能重复:
Python内存分析器
我有一个相当复杂(大约20,000)的Python系列程序,经过一些开发后,它在运行时开始消耗越来越多的内存.找出所有内存使用的最佳工具和技术是什么?
通常这归结为意外地保持对对象的引用,或扩展模块错误(这不是特别可能,因为我们已经使用Python 2.4安装一段时间).
我们使用各种第三方库,如Twisted,Twisted Conch和MySQLdb.
S.L*_*ott 16
通常,未能关闭游标是最常见的内存泄漏类型之一.垃圾收集器无法看到游标中涉及的MySQL资源.除非close()明确调用该方法,否则MySQL不知道Python方面已发布.
经验法则.在您可以管理的短代码范围内打开,使用和关闭游标.
bat*_*rat -2
Python 的内存由垃圾收集器管理。一般来说,应该不会有内存泄漏的问题(对于Python2.5及以上版本肯定不会),除非你碰巧是用C/C++编写扩展模块。在这种情况下,Valgrind(博客文章 - http://bruynooghe.blogspot.com/2008/12/finding-memory-leaks-in-python.html)可能会有所帮助。我发现这个人 - http://mg.pov.lt/blog/hunting-python-memleaks使用 PDB 和 matplotlib 来跟踪内存泄漏。我希望这会有所帮助,我没有修复 Python 内存泄漏的经验。
| 归档时间: |
|
| 查看次数: |
28662 次 |
| 最近记录: |