解释对象数:内存泄漏?

时间:2011-03-07 17:36:45

标签: python memory-leaks objgraph

我有一个Python客户端 - 服务器应用程序,它的服务器已经运行了大约4天......它的内存使用量(由/ proc / PID / status - > VmSize报告)已经增长到大约660Mb,而我想知道是否有内存泄漏,所以我使用objgraph打印出它的内存使用情况(前20个对象类型):

58524    tuple
33270    dict
15483    function
9976     list
5396     set
2644     weakref
2489     builtin_function_or_method
2482     instancemethod
1898     OrderedSet
1751     _BindParamClause
1680     _generated_label
1485     Comparator
1398     type
1315     InstrumentedAttribute
1267     CustomColumn
1165     cell
1146     ScalarAttributeImpl
1146     ColumnProperty
1146     ColumnLoader
1075     wrapper_descriptor

我没有看到任何特别“臭”的东西,我错过了什么?也许这只是因为Python doesn't立即向操作系统释放未使用的内存? (这是CherryPy + SQLAlchemy应用程序)

1 个答案:

答案 0 :(得分:1)

要获取更有意义的数据,请让服务器保持运行数天,然后每天提取一次此摘要。关键是要看看哪一种物体从一天到下一天都在积累;那些对象类型将是你内存泄漏的最可能的候选者!让我们知道你找到了什么。