Python でオブジェクトがメモリ内で占有しているサイズを取得するにはどうすればよいですか?
ベストアンサー1
ただsys.getsizeof
モジュールで定義された関数sys
。
sys.getsizeof(object[, default])
:オブジェクトのサイズをバイト単位で返します。オブジェクトは任意のタイプのオブジェクトにすることができます。すべての組み込みオブジェクトは正しい結果を返しますが、これは実装固有のものであるため、サードパーティの拡張機能には当てはまりません。
オブジェクトに直接関連するメモリ消費量のみが計算され、参照先のオブジェクトのメモリ消費量は計算されません。
引数
default
を使用すると、オブジェクト タイプがサイズを取得する手段を提供しておらず、エラーが発生する場合に返される値を定義できますTypeError
。
getsizeof
オブジェクトの__sizeof__
メソッドを呼び出し、オブジェクトがガベージ コレクターによって管理されている場合は、追加のガベージ コレクターのオーバーヘッドを追加します。見る再帰的なsizeofレシピ
getsizeof()
コンテナのサイズとそのすべての内容を再帰的に検索する例を示します。
Python 3.0 での使用例:
>>> import sys
>>> x = 2
>>> sys.getsizeof(x)
24
>>> sys.getsizeof(sys.getsizeof)
32
>>> sys.getsizeof('this')
38
>>> sys.getsizeof('this also')
48
Python 2.6未満でない場合はsys.getsizeof
、この広範なモジュール代わりに。しかし、一度も使用しませんでした。