4

我有一个长期运行的过程,不断分配和释放对象。尽管正在释放对象,但 RSS 内存使用量会随着时间的推移而上升。

如何计算发生了多少碎片?一种可能性是计算 RSS / sum_of_allocations 并将其作为指标。即使那样,我该怎么办计算分母(sum_of_allocations)。

4

1 回答 1

1

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

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

您可以使用 gc.get_objects() 检查正在跟踪的对象

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

还有 gc.garbage,它会查找无法释放但无法访问的对象。

于 2012-12-09T03:20:06.447 回答