我们有一个项目,我们正在分析超过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方法?
谢谢!