小编Paz*_*aza的帖子

OpenCV Python:如何避免 py3 中的 cv2.imwrite() 内存“泄漏”?

我正在 Ubuntu 16.04 (x86) 上使用 OpenCV(3.4.1,本地构建)调查 Python (3.5.2) 应用程序中的内存泄漏(或“膨胀”)。

该应用程序经常将图像写入文件,并且它使用.imwrite()方法来实现此目的。我发现这种使用会.imwrite()导致 RAM 使用量疯狂增长,但我找不到这种行为的原因。

为了调试这个问题,我准备了这个简单的测试脚本:

#!/usr/bin/python3

import cv2
import time

img = cv2.imread("vista.jpg")

idx = 0
while True:
    filename = "/tmp/vista_copy_" + str(idx) + ".tiff"
    cv2.imwrite(filename, img)
    idx = idx + 1
    time.sleep(1)
Run Code Online (Sandbox Code Playgroud)

运行此脚本时,我监控了可用 RAM(每 10 秒采样一次可用内存):

$ while [ 1 ] ; do grep MemFree /proc/meminfo ; sleep 10 ; done
MemFree:          898024 kB
MemFree:          780640 kB
MemFree:          667848 kB
MemFree:          545700 kB
MemFree:          437196 kB
MemFree: …
Run Code Online (Sandbox Code Playgroud)

python linux opencv memory-leaks python-3.x

6
推荐指数
1
解决办法
4088
查看次数

标签 统计

linux ×1

memory-leaks ×1

opencv ×1

python ×1

python-3.x ×1