2017-02-10 87 views
0

我需要幫助使用Pympler並獲取對象的內存使用情況。我使用這樣的: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

您可以用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)) 
+0

非常感謝你。這正是我正在尋找的。 –