使用HtmlAgilityPack时的内存问题?

时间:2012-04-17 00:31:48

标签: .net memory-leaks html-agility-pack

当我让我的应用程序运行很长时间时,我注意到内存问题。我实际上得到了一个内存不足的例外。我试着弄清楚问题是什么,直到我让它再次运行并且我注意到

每次html.LoadHtml(a_few_k_of_html);我都会在这条线路上泄漏。我怀疑HtmlAgilityPack正在泄漏。我尝试将其包装在使用和调用dispose中,但这并不存在。它不仅每次都在该行上发生,但我记得改变一些区域使用HtmlAgilityPack而不是parsing html with regex

如何处理这个内存问题而不是修改HtmlAgilityPack本身?

2 个答案:

答案 0 :(得分:3)

我有同样的问题。处理完文档后,我将文档实例设置为null,然后设置GC.Collect()。问题解决了。

答案 1 :(得分:1)

尝试使用HtmlAgilityPack.HtmlDocument Load()方法使用LoadHtml()

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
MemoryStream ms = new MemoryStream(Encoding.Default.GetBytes(a_few_k_of_html));
doc.Load(ms);
ms.Close();// <-- Important
//Do whatever you want with HtmlDocument