优化HTMLAgilityPack.LoadHtml

时间:2017-12-20 18:28:36

标签: c# visual-studio

我们有一个项目,我们正在分析超过90,000个本地存储的HTML文件。我们正在针对这些文件运行测试,作为数据分析的一部分。

我们显然正在努力优化我们的代码,以便我们的测试尽可能快地运行,从而消除浪费的时间。当我们最初开始测试大约需要4个小时时,通过使用Visual Studio Performance Profiler,我们能够找到瓶颈并将运行时间缩短到大约30分钟。

根据Visual Studio性能分析器,以下几行代码会占用大部分运行时间:

var doc = new HtmlAgillityPack.HtmlDocument();
doc.LoadHtml(html); // specifically this line here

这些HTML文件存储在我们的本地磁盘上并且永远不会改变 - 我想可能缓存“doc”对象的序列化副本并检索反序列化以避免必须调用LoadHtml方法 - 但是,HtmlAgiltiyPack.HtmlDocument类它没有标记为Serializble,我甚至不确定反序列化是否比LoadHTML方法更快。

我们只需要对htmldoc执行xpath语句 - 所以我不确定是否有另一种方法来执行不需要转换为HtmlDocument的xpath - 我猜不会。

有没有其他人对我们如何能够以某种方式优化它/缓存它有任何想法,以便我们不需要经常调用LoadHTML方法?

谢谢!

0 个答案:

没有答案