使用 sys.getsizeof() 高效测量 Python 对象内存占用

使用 sys.getsizeof() 可以查看对象的内存占用:
import sys
mylist = range(0, 10000)
print(sys.getsizeof(mylist)) # 48
哇……等等……为什么这个巨大的列表只有 48 字节?
因为 range 函数返回的是一个可迭代对象,它表现得像一个数字列表,但内部仅记录最后一次迭代的数字。range 比实际的数字列表节省更多内存。
你可以通过列表推导式从同一个 range 创建一个真实的 Python 列表来验证这一点:
import sys
myreallist = [x for x in range(0, 10000)]
print(sys.getsizeof(myreallist)) # 87632
10,000 个数字大约占用 87KB 内存。
Python