首页 > 解决方案 > Python 3 对象创建消耗大量内存

问题描述

我想创建用户定义类的实例列表。这些实例包含许多在类的构造函数中创建的矩阵。使用 pymler 测量的此类实例的总大小为 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, ...)

标签: pythonpython-3.x

解决方案


推荐阅读