2020年6月30日 / 112次阅读 / Last Modified 2020年6月30日
sys模块
python sys模块的getsizeof函数,可以得到对象的内存占用数量,in bytes。
>>>import sys
>>> sys.getsizeof([1,2,3,4,5,6])
112
>>> sys.getsizeof((1,2,3,4,5,6))
96
>>> sys.getsizeof('123456')
55
>>> sys.getsizeof(123456)
28
>>> sys.getsizeof(1.23456)
24
list对象比tuple更消耗内存。
>>> d = {'1':1,'2':2,'3':3,'4':4,'5':5,'6':6}
>>> sys.getsizeof(d)
368
>>> s = set((1,2,3,4,5,6))
>>> s
{1, 2, 3, 4, 5, 6}
>>> sys.getsizeof(s)
736
看起来set对象比dict对象还要占内存,同样存放6条记录,set对象占用内存是dict的一倍。但它们都比list还要多。
所以,如果你的python程序占用内存太多,能用tuple的地方,就别用list!
还有,可以考虑使用generator来减少内存占用。
>>> a = [x for x in range(100)]
>>> sys.getsizeof(a)
912
>>> b = (x for x in range(100))
>>> sys.getsizeof(b)
120
b是一个generator。
-- EOF --
本文链接:https://www.pynote.net/archives/2108
《用sys.getsizeof查看对象占用内存数》有2条留言
前一篇:对含有非数字的字符串进行加1操作
后一篇:python中的集合操作
Ctrl+D 收藏本页
©Copyright 麦新杰 Since 2019 Python笔记
存放同样的数据,tuple比list占用内存要小一些。 [ ]