Python 3对象创建消耗大量内存

时间:2018-07-04 14:50:57

标签: python python-3.x

我想创建一个用户定义类实例的列表。这些实例包含许多在类的构造函数内部创建的矩阵。用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, ...)

0 个答案:

没有答案
相关问题