私は自分のパッケージから実行しているコードをいくつか持っていて、プログラムはそれより多くのメモリ(60GB)を使用しています。どのようにこのメモリが使用されている場所を解決しようとするために、現在の名前空間にすべてのオブジェクトのサイズ(バイト単位)を印刷できますか?Python:現在の名前空間にあるすべてのオブジェクトのサイズを取得する方法は?
私は
from pympler import asizeof
for objname in dir():
print(asizeof.asizeof(thing)/1024) # print size in kb
ような何かをしようとしました。しかし、それは単に名前空間内のオブジェクトの名前を含む文字列のサイズを出力として、それは動作しません。このメソッドを使用するために名前空間内のすべてのオブジェクトへの参照を取得する方法はありますか、またはメモリを使用しているものを理解するためのより良い方法がありますか?
はい、 'dir()'は*だけを文字列として生成します。 'globals()'と 'locals()'を使って名前空間を辞書として取得し、名前ではなくオブジェクト自身にアクセスできるようにします。 –