我想创建一个用户定义类实例的列表。这些实例包含许多在类的构造函数内部创建的矩阵。用pympler测量的此类实例的总大小为1.2 MB。
一个接一个地创建这些对象时,会发生一些奇怪的事情。创建第一个对象时,系统范围的内存使用量只会微不足道地增加,但是,创建第二个对象时,它将使用1 GB以上的系统范围的内存。这种内存使用情况未在python内部反映出来,即pympler仍说内存使用量增加了1.2 MB。对于每个新创建的对象,此操作都会继续,每秒使用大量内存。
有没有办法查看导致这种内存使用情况的原因?
为清楚起见,我在下面包括了各自的(伪)代码:
class ClassA:
class SubClass:
def __init__(self, ...):
self.matrix_a = np.zeros(256)
self.matrix_b = np.zeros(256)
self.matrix_c = np.zeros(256)
def __init__(self, ...):
self.subitems = []
for i in range(0, 100000):
self.subitems.append(ClassA.SubClass(self, ...)