Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在编写一个程序来处理几个消耗大量 RAM 的 16 位 TIFF 图像。
如果我打开这样的图像:
import cv2 for i in range(1000): img = cv2.imread(file[i])
每个图像数组是否进入内存,或者当我将其分配给新值时它是否被删除?如果它没有被删除,如何在打开新的之前将其删除?
谢谢!
对于每次迭代,img都会重新分配,因此垃圾收集器会自动删除旧帧。
img
如果由于某种原因解释器没有对数据进行垃圾收集,您可以强制它这样做:
import gc gc.collect()
但是,仅当您知道存在内存泄漏时才这样做,因为运行它(尤其是循环它!)会减慢您的程序速度,通常最好将内存管理留给解释器。