Python查看对象所占内存大小

以下内容摘自ChatGPT

在Python中,可以使用sys模块中的getsizeof()函数来查看一个数据结构所占用的内存大小。

该函数返回对象占用的字节数,但是需要注意以下几点:

1. getsizeof()函数只能返回对象本身占用的内存大小,而不能返回其引用的其他对象所占用的内存大小。

2. 对于容器类型(如列表、字典等),getsizeof()函数只会计算容器本身占用的内存大小,而不会计算其元素或键值对所占用的内存大小。

3. getsizeof()函数返回的结果可能会受到Python解释器和操作系统等因素的影响,因此仅供参考。

下面是一个示例代码,演示如何使用getsizeof()函数来查看一个列表和一个字典所占用的内存大小:

 

import sys

my_list = [1, 2, 3, 4, 5]

my_dict = {'a': 1, 'b': 2, 'c': 3}

print("Size of my_list:", sys.getsizeof(my_list))

print("Size of my_dict:", sys.getsizeof(my_dict))

输出结果类似于:

Size of my_list: 104

Size of my_dict: 240 

需要注意的是,在不同版本和不同平台上运行时,输出结果可能会有所不同。

查到的内容

如果想一次性获取Python对象完整的内存大小,可以用Pympler库的pympler.asizeof.asizeof函数

示例:

from pympler import asizeof
print(asizeof([1, 55, 2])) print(asizeof(asizeof))

其实,经过测试:

1.asizeof函数获取的列表内存比sys.getsizeof函数获取的列表+元素内存总和要高;

2.asizeof认为函数是没有内存占用的(为0),而sys.getsizeof返回的函数内存大于0。

 

posted @ 2023-03-21 13:39  小鱼圆又圆  阅读(1919)  评论(0)    收藏  举报