内存中第三方对象的大小

2024-04-23 07:04:27 发布

您现在位置:Python中文网/ 问答频道 /正文

sys.getsizeof()函数返回内存中对象的大小(以字节为单位)。由于此函数可能会为第三方objects返回不准确的结果,如何确定BioPython对象正在使用的内存量?你知道吗

我使用example代码加载了一个286MB的文件(已修改):

from Bio import SeqIO
handle = open("example.gb", "rU")
records = list(SeqIO.parse(handle, "genbank"))
handle.close()

并且sys.getsizeof(records)表示它正在使用268KB。你知道吗


Tags: 文件对象函数内存代码字节objectsexample
1条回答
网友
1楼 · 发布于 2024-04-23 07:04:27

sys.getsizeof(obj)返回对象obj本身的大小,而不是它可能以某种方式引用的任何其他对象的大小:

>>> l = []
>>> sys.getsizeof(l)
72
>>> zero = 0
>>> sys.getsizeof(zero)
24
>>> l.append(zero)
>>> sys.getsizeof(l)
104
>>> 72 + 24
96
>>> l.append(zero)
>>> sys.getsizeof(l)
104
>>> l.append(zero)
>>> sys.getsizeof(l)
104
>>> l.append(zero)
>>> sys.getsizeof(l)
104
>>> l.append(zero)
>>> sys.getsizeof(l)
136
>>> 
>>> class Foo(object):
...     def __init__(self, bar=None):
...         self.bar = bar
... 
>>> f = Foo()
>>> sys.getsizeof(f)
64
>>> f.bar = 1
>>> sys.getsizeof(f)
64
>>> f.bar = l
>>> sys.getsizeof(f)
64
>>> 

相关问题 更多 >