Python 内存中第三方对象的大小

Python 内存中第三方对象的大小,python,biopython,Python,Biopython,函数返回内存中对象的大小(以字节为单位)。由于此函数可能会为第三方返回不准确的结果,如何确定BioPython对象使用的内存量 我使用以下代码加载了一个286MB的文件(已修改): 和sys.getsizeof(records)表示它正在使用268KB。sys.getsizeof(obj)返回对象obj本身的大小,而不是它可能以某种方式引用的任何其他对象的大小: >>> l = [] >>> sys.getsizeof(l) 72 >>> z

函数返回内存中对象的大小(以字节为单位)。由于此函数可能会为第三方返回不准确的结果,如何确定BioPython对象使用的内存量

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

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

有趣,但没有回答我如何确定BioPython对象使用的内存量的问题?这可能是一个很好的起点
>>> 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
>>>