我有一个长时间运行的进程,它不断地分配和释放对象。虽然对象被释放了,但RSS内存使用量随着时间的推移而增加。
我如何计算发生了多少碎片化?一种可能性是计算RSS / 分配总和,并将其作为指标。即使这样,我如何计算分母(分配总和)。
我有一个长时间运行的进程,它不断地分配和释放对象。虽然对象被释放了,但RSS内存使用量随着时间的推移而增加。
我如何计算发生了多少碎片化?一种可能性是计算RSS / 分配总和,并将其作为指标。即使这样,我如何计算分母(分配总和)。
请查看垃圾回收器接口gc。
http://docs.python.org/2/library/gc.html
您可以使用gc.get_objects()检查正在跟踪的对象。
“通常情况下,原子类型的实例不会被跟踪,而非原子类型(容器、用户定义的对象等)的实例会被跟踪。”
还有gc.garbage,它可以找到无法释放但是不可访问的对象。