如何克服 tessnet 内存泄漏?
Posted
技术标签:
【中文标题】如何克服 tessnet 内存泄漏?【英文标题】:How to overcome tessnet memory leak? 【发布时间】:2011-12-29 11:46:06 【问题描述】:我在我的个人项目中尝试了 tessnet 库,它是 Tes-s-ract OCR 引擎的包装器。但是我发现 Tessnet 当前版本有很多内存泄漏。 30 次 OCR 后,为我的应用分配的内存增加到 500MB。你能告诉我如何解决这个内存泄漏问题吗?有没有更好的解决方案?我只知道 C# 并且只能在应用程序中使用 .NET 库。 希望尽快收到各位专家的来信。 提前致谢
【问题讨论】:
请出示相关代码。您是否正确处理,尤其是它读取的位图? 我确信我正确地处理了位图。我检查了几个从 Internet 下载的 tessnet 示例项目。他们对我的应用也有同样的问题。 Tessnet 是 Tesseract 的包装器,它陈旧且充满内存泄漏!下面经常处理的解决方案可能是最好的解决方案。 【参考方案1】:在对我创建的所有位图执行了我需要的操作之后,我通过调用 .Dispose() 解决了我的问题。我也对 TessNetOCR 对象中包含的位图做了同样的事情。
Bitmap bmp = new Bitmap(...);
TessNetOCR ocr = new TessNetOCR(tessnetlocation, lang, bmp, false, false);
(code using ocr and bmp)
ocr.Image.Dispose();
bmp.Dispose();
编辑:我应该注意到该程序正在使用大量内存,并且对我的图像对象调用 dispose 释放了该内存,并解决了内存泄漏问题。
【讨论】:
以上是关于如何克服 tessnet 内存泄漏?的主要内容,如果未能解决你的问题,请参考以下文章