解决使用 Html Agility Pack 解析网页时并行优化无效的问题
💡
原文中文,约1500字,阅读约需4分钟。
📝
内容提要
HtmlAgilityPack是一个用于.NET平台的HTML解析库,适用于处理非标准的HTML文档。使用多线程并行解析HTML文档并不能提高处理速度,可能存在内存瓶颈。通过修改配置文件可以解决该问题,处理速度得以提升。
🎯
关键要点
- HtmlAgilityPack是一个用于.NET平台的HTML解析库,适合处理非标准HTML文档。
- 解析是一个CPU密集型操作,使用多线程并行解析并未提高处理速度。
- 多线程解析时,CPU占用率维持在30%以下,处理时间与单线程相似。
- 分析发现程序可能存在内存瓶颈,约50%的CPU时间耗费在内存分配上。
- 通过修改App.config文件的GC设置可以解决内存瓶颈问题。
- 在使用.NET 8.0时,需通过项目文件指定使用Server版本的垃圾回收。
- 修改后处理速度显著提升,CPU占用维持在70%左右。
➡️