gpt4 book ai didi

python - 第三方对象在内存中的大小

转载 作者:行者123 更新时间:2023-11-30 23:29:30 27 4
gpt4 key购买 nike

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。

最佳答案

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
>>>

关于python - 第三方对象在内存中的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21160253/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com