检查 Python 对象的内存使用情况
带sys.getsizeof()
你可以检查一个对象的内存使用情况:
import sys mylist = range(0, 10000) print(sys.getsizeof(mylist)) # 48
哇……等等……为什么这个巨大的列表只有 48 个字节?
这是因为 range 函数返回一个可迭代对象,其行为仅类似于数字列表,但在内部仅保留最后一次迭代次数的计数。范围比使用实际的数字列表更节省内存。
您可以通过使用列表推导来创建一个实际的 Python 相同范围内的数字列表:
import sys myreallist = [x for x in range(0, 10000)] print(sys.getsizeof(myreallist)) # 87632
对于 10,000 个数字,这大约是 87KB。
Python