Python中对象的内存使用(一)
本文于微信公众号「Python之美」https://mp.weixin.qq.com/s/ruRVxgkdQLWC7F4kPrxp1Q
近在了解 Python 语言中各种数据结构的使用的内存情况,写几篇文章和大家分享。
计算机存储单位
先铺垫一点基础知识。计算机存储单位一般用 Bit, Byte, KB, MB, GB, TB, PB 等表示。他们由小到大递增:
- Bit (比特)。Bit 是 Binary digit(二进制数字)的缩写,小的存储信息单位,存放一位二进制数,即 0 或 1。
- Byte (字节)。8 个二进制位 (Bit) 为一个字节 (B),字节是常用的
存储容量
单位。 - KB (Kilobyte)。1KB = 1024Byte
- MB (Megabyte,简称「兆」)。1MB = 1024KB
- GB (Gibibyte)。1GB = 1024MB
- TB (Terabyte)。1TB = 1024GB
- PB (Petabyte)。1PB = 1024TB
当然还有更大级别的单位,不常用就不说了。
获得 Python 对象占用的内存方法
在 Python 中 一切皆为对象
,就不是象 C 语言中 int 占用 4 个字节这么简单了,Python 提供了 sys.getsizeof
获取对象所占用的字节大小。它支持任何类型的对象 (本文例子都运行在 Python 3.8 下):
❯ venv/bin/ipython
Python 3.8.b3+ (heads/3.8:9bedb8c9e6, Aug 13 2019, 10:49:01)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.7. -- An enhanced Interactive Python. Type '?' for help.
In : import sys
In : sys.getsizeof ('a')
Out: 50
In : sys.getsizeof (1)
Out: 28
In : a = 1
In : a.__sizeof__()
Out: 28
相关文章