Pympler获取对象

时间:2017-02-10 01:36:54

标签: python memory

我需要使用Pympler帮助并获取对象的内存使用情况。我这样使用它:

from pympler import classtracker

myObj = SomeClass()
tr = classtracker.ClassTracker()
tr.track_object(myObj)

# Do stuff with object here

# Print stats
tr.create_snapshot()
tr.stats.print_summary()

这很好用,我得到了这些结果:

---- SUMMARY ------------------------------------------------------------------
                                         active      0     B      average   pct
  SomeClass                                   1    136.45 KB    136.45 KB    0%
-------------------------------------------------------------------------------

我的问题是如何获得平均数并将其放入变量中?我在文档中找不到任何内容。我正在运行一些测试,并希望在测试的整个生命周期内获得平均值。如果您知道某种方法,或者我可以用任何其他包来完成我想要的,请告诉我。谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用asizeof函数执行此操作,甚至不需要使用classtracker(除非您使用的是一些更复杂的功能)

from pympler.asizeof import asizeof

class SomeClass:
    def __init__(self):
        self.list = []
    def append(self, i):
        self.list.append(i)

myObj = SomeClass()

myObj.append("Hello")
myObj.append("World")

print 'Sizeof myObj is {}'.format(asizeof(myObj))