为什么函数" 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中