python int类数据的内存大小

Python是全面向对象语言,和C,java在基本数据变量占用字节数上存在较大差异,主要原因来自于python 基本数据变量都是对象,具有更复杂的结构体,而且python2,python3,操作系统位数不同还有差异,可以利用 sys.getsizeof(x)函数查看占用的字节数,下面是python3.5,windows 64位 内存占用情况,可以看出变量的结构体占用和值的占用:

import sys

a1 = 0
a2 = 1
a3 = 100
a4 = [100,0]
a5 = []
print("a1,0",sys.getsizeof(a1))
print("a2,1",sys.getsizeof(a2))
print("a3,100",sys.getsizeof(a3))
print("a4,[100,0]",sys.getsizeof(a4))
print("a5,[]",sys.getsizeof(a5))

import numpy as np
print("--------------------------------numpy")
b1 = np.array([])
b2 = np.array([100,0])
b3 = b2.astype(np.int8)
b4 = b2.astype(np.int16)
b5 = b2.astype(np.int32)
print("b1,[]",sys.getsizeof(b1))
print("b2,[100,0]",sys.getsizeof(b2))
print("b3,np.int8",sys.getsizeof(b3))
print("b4,np.int16",sys.getsizeof(b4))
print("b5,np.int32",sys.getsizeof(b5))

# a1,0 24
# a2,1 28
# a3,100 28
# a4,[100,0] 80
# a5,[] 64
# --------------------------------numpy
# b1,[] 96
# b2,[100,0] 104
# b3,np.int8 98
# b4,np.int16 100
# b5,np.int32 104

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值