【发布时间】:2011-07-24 21:44:37
【问题描述】:
不知何故,我的 Python 程序在运行“top”命令的列(VIRT 和 RES)时占用的内存越来越多。
但是,我非常仔细地仔细检查了我的代码,并且我确定没有内存泄漏(没有使用任何字典,没有全局变量。它只是一个主方法多次调用子方法) .
我使用 heapy 来分析我的内存使用情况
from guppy import hpy;
heap = hpy();
.....
print heap.heap();
每次主方法调用子方法。令人惊讶的是,它总是给出相同的输出。但是内存使用量一直在增长。
我想知道我是否没有正确使用 heapy,或者“top”命令中的 VIRT 和 RES 并没有真正反映我的代码使用的内存?
或者谁能提供一种更好的方法来跟踪 Python 脚本中的内存使用情况?
非常感谢!
【问题讨论】:
-
听起来子方法正在泄漏。假设您可以访问其代码,请尝试 sys.getsizeof(object) or else pysizer 测量子方法内的对象。
标签: python memory memory-leaks