不知何故,我的Python程序占用越来越多的内存,因为它的运行(VIRT和RES)列的“顶部”命令不断增加。Python内存泄漏跟踪?
但是,我仔细检查了我的代码,我确信没有内存泄漏(没有使用任何字典,也没有全局变量,它只是多次调用子方法的主要方法) )。
我用heapy通过
from guppy import hpy;
heap = hpy();
.....
print heap.heap();
各主要方法调用子方法的时间来分析我的内存使用情况。令人惊讶的是,它总是给出相同的输出。但内存使用量正在不断增长。
我不知道我是否没有使用heapy,或者“top”命令中的VIRT和RES没有真正反映我的代码使用的内存?
或者任何人都可以提供一个更好的方法来追踪Python脚本中的内存使用情况吗?
非常感谢!
听起来像子方法会泄漏。假设你有权访问它的代码,试试[sys.getsizeof(object)或者pysizer](http://stackoverflow.com/questions/449560/how-do-i-determine-the-size-of-an-object -in-python)来测量submethod中的对象。 – smci