为什么数据对象在python中占用不同的大小

时间:2018-01-22 14:11:49

标签: python

第一种方法

例如:

{
  RootQuery: {
    getTotalVehicles: async (root, args, context) => {
      return { color: args.color };
    },
    TotalVehicleResponse: {
      totalCars: async (root, args, context) => {
        // root contains color here
      },
      totalTrucks: async (root, args, context) => {
        // root contains color here
      }
    }
  }
}

如果我右键点击此文件 - >属性,占用的字节数为12。 但如果我一起去

第二种方法

data = b"abc\npqr\nxyz\n"
fp = open("C:/temp/abc.txt", 'wb')
fp.write(data)
fp.close()

import sys

print(sys.getsizeof(data))
与第一种方法相比,它给了我不同的东西。 所有这些命令都不应该给你在内存中占用多少字节?

1 个答案:

答案 0 :(得分:1)

此代码显示了有关内存中数据大小的其他内容:

import sys

data1 = b"abc\npqr\nxyz\n"
data2 = b"abc\npqr\nxyz\nghi\n"


print(sys.getsizeof(data1),data1.__sizeof__())
print(sys.getsizeof(data2),data2.__sizeof__())

输出:

29 29
33 33

似乎data2大4个字节,这是预期的。

这意味着某些类型在内存中会产生与之相关的开销。

我注意到您没有向我们转发所有您创建的文件的属性。

如果我重新创建你写的文件,我也可以看到它有12个字节,但在我的Windows 10机器上它还说磁盘上的大小是4k字节。现在这是一个很大的开销!因此,内存中的17字节开销并不是那么糟糕。