私は基本的に2つのサブ機能に分かれている機能を持っています。
html=RetriveHTML(int index);
returnColection = RegexProcess(html, index);
RetrieveHTML の並列化を最適化して、このプロセスをスピードアップする最善の方法は何ですか?
通常、これを最大 20000 のインデックスで呼び出します。最初のサブ機能はネットワークに依存し (webclient.downloadstring を使用して 1 つのサーバーから複数の URL HTML を取得)、2 番目のサブ機能は主に CPU です。
Parallel foreach と Tasks(continue with, continueall, fromasync) の世界で迷子になり、解決策にたどり着くのに苦労しています。最初に Parallel foreach を簡単に試してみましたが、そのパフォーマンス、つまりネットワーク I/O が連続する呼び出しで低下することがわかりました (最初のループは速く、他のループは遅くなります)。解決策は、html オブジェクトが多くて大きいため、処理されるときにそれらを解放します。私は.net 4.0を使用しています...