我有一个功能,基本上分为两个子功能。
html=RetriveHTML(int index);
returnColection = RegexProcess(html, index);
通过优化 RetrieveHTML 并行化来加速此过程的最佳方法是什么?
通常我用多达 20000 个索引来调用它。第一个子功能依赖于网络(使用 webclient.downloadstring 从一个服务器获取多个 URLs HTML),第二个子功能主要是 CPU。
我迷失在 Parallel foreach 和 Tasks(continue with, continueall, fromasync) 世界中,我很难找到解决方案。我首先尝试 Parallel foreach 是因为它的简单性,但我发现它的性能,即网络 I/O 会随着连续调用而下降(第一个循环很快,其他循环变慢)。该解决方案将在处理 html 对象时释放它们,因为它们很多且很大。我正在使用.net 4.0 ...