在Python中计算内存碎片

时间:2012-12-09 02:05:20

标签: python memory fragmentation

我有一个长时间运行的进程,它不断地分配和释放对象。虽然对象正在被释放,但RSS内存使用量会随着时间的推移而增加。

如何计算碎片发生的程度?一种可能性是计算RSS / sum_of_allocations并将其作为指标。即便如此,如何计算分母(sum_of_allocations)。

1 个答案:

答案 0 :(得分:1)

查看垃圾收集器界面,gc。

http://docs.python.org/2/library/gc.html

您可以使用gc.get_objects()

检查正在跟踪的对象

“作为一般规则,不跟踪原子类型的实例和非原子类型的实例(容器,用户定义的对象......)。”

还有gc.garbage,它可以找到无法释放但无法访问的对象。