标签: c opencv memory-leaks
以下是插入在openCV contrib分支中开发的哈希表(显然)中的代码。我怀疑代码中存在内存泄漏。我怀疑的原因是我从大约200 MB的文件读取哈希表,当我检查程序在几秒钟内运行时消耗的内存超过1GB,如果我让它运行一段时间整个操作系统崩溃超过6 GB。
我对C有一点了解,但我想确保是这种情况。如果有内存泄漏,我该如何解决?
schema.rb
答案 0 :(得分:2)
我无法发现内存泄漏(如果有),但当然可以使用内存泄漏检查程序valgrind。你在运行时运行它。
valgrind
如果您无法从我提到的链接中了解如何使用它,请执行以下操作:
让我们将您的计划作为hash.c。到了命令行并编译它,例如: gcc hash.c -Wall 如果您的程序成功编译,将出现可执行文件或out文件。由于我们没有指定可执行文件的名称,因此它的默认名称为a.out。所以让我们用valgrind:运行它 valgrind -- leak-check=full ./a.out 这将运行可执行文件以及valgrind,如果存在内存泄漏,它将在可执行文件结束时显示它。 如果您没有安装valgrind,可以从here安装。
让我们将您的计划作为hash.c。到了命令行并编译它,例如:
hash.c
gcc hash.c -Wall
如果您的程序成功编译,将出现可执行文件或out文件。由于我们没有指定可执行文件的名称,因此它的默认名称为a.out。所以让我们用valgrind:
out
a.out
valgrind -- leak-check=full ./a.out
这将运行可执行文件以及valgrind,如果存在内存泄漏,它将在可执行文件结束时显示它。
如果您没有安装valgrind,可以从here安装。