2011-02-16 115 views
8

我有一個包含Python類 「富」:如何測量python中對象的內存使用情況?

  • 數據(整數,浮點數)
  • 名單
  • 詞典(int型的(整數花車,和其他物體的)漂浮物,其他物體)

假設沒有反向引用(週期),有沒有簡單的方法來衡量一個「foo」對象的總內存使用情況?

從本質上講,我要尋找一個遞歸版本「sys.getsizeof」

幾個我遇到包括工具:heapy,objgraph和GC,但我不認爲任何(我可以糾正這個)

建議感激!

+1

你的最終目標是什麼?通用代碼分析器是否足夠? – Daenyth 2011-02-16 22:12:06

+0

我的python代碼使用了很多內存。排除內存泄漏後,我試圖在幾個小時內跟蹤代碼的內存使用情況,以查看內存增加的來源。 – Ciaran 2011-02-16 22:28:37

回答

1

我不知道,如果你想獲得類型的大小,或實際複雜的對象,但看着getsizeof,文件指向這幾招一個強大的遞歸版本:

http://code.activestate.com/recipes/577504/

所以我會假設沒有'股票'的python電話會這樣做,否則文檔會提及它。

16

嘗試Pympler,它將自己描述爲「用於測量,監視和分析Python對象的內存行爲的開發工具」。

東西沿着

>>> import pympler 
>>> print pympler.asizeof.asizeof(your_object) 

行一直幫助我過去。

您可以search S.O.獲取更多信息 - 這裏是Alex Martelli的recommendation

相關問題