我正在编写一个程序来处理几个消耗大量RAM的16位TIFF图像。
如果我打开这样的图像:
import cv2
for i in range(1000):
img = cv2.imread(file[i])
每个图像阵列都会进入内存,还是在我将其分配给新值时会被删除? 如果没有删除,我怎么能在打开新的之前将其删除?
谢谢!
答案 0 :(得分:3)
对于每次迭代,img
都会被重新分配,因此垃圾收集器会自动删除旧帧。
答案 1 :(得分:1)
如果由于某种原因,解释器不是垃圾收集数据,你可以用这个来强行:
import gc
gc.collect()
只有当你知道存在内存泄漏时才这样做,但是,运行它(尤其是循环它!)会降低你的程序速度,通常最好将内存管理留给解释器。