【问题标题】:Emgu CV - memory-leaks (memory consumption)Emgu CV - 内存泄漏(内存消耗)
【发布时间】:2010-05-16 09:12:51
【问题描述】:

我正在使用 EmguCV,它是 .NET 的 OpenCV 包装器。我正在处理所有创建的对象,但我的应用程序仍在使用越来越多的内存(也在发布配置中)。我已经使用 .NET 内存分析器调试了我的应用程序并得到了这个结果:

http://img532.imageshack.us/img532/2503/screenqv.png

所有对象实例计数都在振荡,但 GChandle 实例计数正在增加,直到我的机器无法使用。垃圾收集器不会释放内存(我认为)。

我正在使用 VS 2008 专业版,Win7 专业版 32 位,都是最新的 emguCV 的最新稳定版本。

如果有帮助,我可以发布一些应用代码。

感谢和抱歉我的英语。 马丁

【问题讨论】:

  • OpenCV 在处理对象时非常讨厌。我会说你很可能没有处理应该处理的东西。放一些代码,也许我们能找到你的错误。

标签: c# memory-leaks opencv emgucv


【解决方案1】:

查看下面的链接,了解如何进行自动垃圾收集。
http://www.emgu.com/wiki/index.php/Working_with_Images
我遇到了类似的问题,我开始使用上面链接中的不同指南改进我的代码。
问候
希瓦姆

【讨论】:

  • 好吧,没什么好说的。只是您需要手动处理(例如使用using)或等待GC。而且 Disposing 更好。
  • 谢谢,这是一个显而易见的答案。一个小时内以 100 毫秒的速度捕获图像...谢谢。
【解决方案2】:
public static class IImageExtensions
{
    // http://stackoverflow.com/questions/20825497/difference-between-using-and-dispose-call-in-c-sharp 
    public static void FreeMem(this IImage image)
    {
        using (image)
        {
            using (image.Bitmap)
            {

            }
        }
        //image.Bitmap.Dispose();
        //image.Dispose();
    }
}

【讨论】:

    猜你喜欢
    • 2018-03-01
    • 1970-01-01
    • 2021-12-25
    • 2010-12-23
    • 2014-03-24
    • 1970-01-01
    • 2016-10-02
    • 1970-01-01
    • 2018-03-17
    相关资源
    最近更新 更多