我在 python 中运行一个 for 循环,其中每个循环都需要在不同的数据上创建一个模型(下面显示了一个摘录)。每次创建的模型都不会从内存中删除,从而导致每个循环变慢。
import gc
for s in range(0, 5):
X, Y = get_data()
m = make_dgp_model(X, Y, Z_100, L)
del m
gc.collect()
print('memory: {}'.format(resource.getrusage(resource.RUSAGE_SELF).ru_maxrss / 1000000))
给出输出:
memory: 460.025856
memory: 470.310912
memory: 486.764544
memory: 493.457408
memory: 499.523584
我知道python对其内存使用指针引用,并且当变量被重用时它不会重写内存中的某些内容。出于这个原因,我尝试了 del m,然后使用了垃圾收集器。这似乎不起作用。难道我做错了什么?m
有没有一种方法可以在循环完成后完全删除存储的内容?