Python内存类对象函数

时间:2017-04-27 05:23:34

标签: python function class object memory

为什么函数" update_wts"在以下代码中占用内存。当函数存在时,为什么内存不会返回?

该函数在对象变量中将1替换为1,那么为什么要添加内存?为什么在函数退出后没有释放内存?

class myClass(object):
    def __init__(self,i):
        self.ID = i
        self.wts = {}
        self.prc = {}
        self.numbers = []
        self.n = 1000

    def initial_values(self):
        self.numbers = range(self.n)
        for i in self.numbers:
            self.prc[i] = 1

    def update(self):
        for i in self.numbers:
            self.prc[i] = 1


how_many = 100000

classObjects = [myClass(i) for i in xrange(how_many)]

for ob in classObjects:
    ob.initial_values()

@profile
def update_wts():
    for ob in classObjects:
        ob.update()


update_wts()

使用python -m memory_profiler test.py查看内存,将代码放在test.py中

0 个答案:

没有答案