Python的sys模块中提供了一个getsizeof()函数,用于获取一个对象的大小,包括对象本身占用的空间和所包含的对象占用的空间。
使用方法
首先要导入sys模块:
import sys
然后就可以使用getsizeof()函数获取对象的大小,语法如下:
sys.getsizeof(object[, default])
其中,object为要获取大小的对象,default为默认值,如果object没有提供sizeof()方法,那么将返回default。
示例1:获取字符串大小
import sys
str1 = "hello world"
print(sys.getsizeof(str1)) #输出结果为52
在这个例子中,我们通过getsizeof()函数获取了一个字符串对象的大小,这个字符串对象本身占用了14个字节的空间,其中包括字符串长度、引用计数等信息,另外还包含了“hello world”这个字符串本身占用的空间,也就是12个字节。
示例2:获取列表大小
import sys
list1 = [1, 2, 3, 4, 5]
print(sys.getsizeof(list1)) #输出结果为112
在这个例子中,我们通过getsizeof()函数获取了一个列表对象的大小,这个列表对象本身占用了32个字节的空间,其中包括列表长度、引用计数、内存指针等信息,另外还包含了列表元素占用的空间,也就是5个整数对象,每个整数对象占用28个字节的空间,因此总共是140个字节,但是由于Python的内存管理机制,有一部分空间是被浪费的,因此实际上只占用了112个字节的空间。
总结
getsizeof()函数可以帮助我们计算对象的内存占用大小,可以用来优化程序的内存使用,避免内存泄漏等问题。但需要注意的是,它只能计算Python对象的内存使用情况,对于C中定义的对象、全局变量等无法计算。