Python オブジェクトのメモリ使用量を確認する
sys.getsizeof()
あり オブジェクトのメモリ使用量を確認できます:
import sys mylist = range(0, 10000) print(sys.getsizeof(mylist)) # 48
うわあ…ちょっと待って…どうしてこの巨大なリストがたったの48バイトなの?
これは、範囲関数が反復可能なオブジェクトを返すためです。このオブジェクトは数値のリストのように振る舞うだけで、内部的には最後の反復回数のカウントを保持するだけです。範囲は、実際の数値のリストを使用するよりもメモリ効率が大幅に向上します。
リスト内包表記を使用して、同じ範囲の数値の実際の Python リストを作成することで、自分の目で確かめることができます:
import sys myreallist = [x for x in range(0, 10000)] print(sys.getsizeof(myreallist)) # 87632
これは、10,000 個の数値で約 87KB です。
Python