我正在寫一個程序,處理幾個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