我试图找出系统内存中的一些python变量
在以下代码中:
>>> a = numpy.int16(1)
>>> a.nbytes
2
>>> sys.getsizeof(a)
24
为什么numpy int16根据sys.getsizeof()占用24个字节的空间?
答案 0 :(得分:1)
来自the docs:
getsizeof()调用对象的__sizeof__方法,如果对象由垃圾收集器管理,则添加额外的垃圾收集器开销。
所以:
sys.sizeof 是整个对象,疣和所有的大小;
nbytes 会返回仅由数组使用的实际数据所使用的内存,没有多余的装饰。