我正在写一个程序,处理几个16位TIFF图像,消耗大量的RAM。Python和内存消耗打开TIFF图像时
如果我打开图片是这样的:
import cv2
for i in range(1000):
img = cv2.imread(file[i])
是否每个图像阵列去记忆,或者当我把它分配给新的价值是否得到删除吗? 如果它没有被删除,在打开新的之前如何删除它?
谢谢!
我正在写一个程序,处理几个16位TIFF图像,消耗大量的RAM。Python和内存消耗打开TIFF图像时
如果我打开图片是这样的:
import cv2
for i in range(1000):
img = cv2.imread(file[i])
是否每个图像阵列去记忆,或者当我把它分配给新的价值是否得到删除吗? 如果它没有被删除,在打开新的之前如何删除它?
谢谢!
对于每次迭代,img
被重新分配,所以旧的帧将被垃圾回收器自动删除。
如果由于某种原因解释是不是垃圾收集数据,你可以强制其手这样的:
import gc
gc.collect()
只有做到这一点,如果你知道有内存泄漏,但是,由于运行它(特别是循环它)可以减慢程序的运行速度,通常最好将内存管理留给解释器。
谢谢,我在循环之后做! –
np!我很好奇听到这种情况是否真的减少了内存使用 – Meridius
只是确保你没有任何其他引用它漂浮。 – tacaswell