小さなクローラーを作成しましたが、試してみると、特定のサイトをクロールするときにクローラーが 98 ~ 99% の CPU を使用していることがわかりました。
私は以前dotTrace
、問題が何であるかを確認していましたが、それは私の方法に向けて私を指し示していましたhttpwebrequest
- ここでいくつかの以前の質問の助けを借りてそれを少し最適化しました。
次に、CPU 負荷の原因となっている URL を調べてみたところ、実際にはサイズが非常に大きいサイトであることがわかりました。
HtmlAgilityPack.HtmlDocument documentt = new HtmlAgilityPack.HtmlDocument();
HtmlAgilityPack.HtmlNodeCollection list;
HtmlAgilityPack.HtmlNodeCollection frameList;
documentt.LoadHtml(_html);
list = documentt.DocumentNode.SelectNodes(".//a[@href]");
私がやりたいことは、ページ上のリンクを抽出することだけなので、大規模なサイトの場合.. とにかく、これを取得してCPUをあまり使用しないようにすることはできますか?
私がフェッチするものを制限するかもしれないと思っていましたか?ここで私の最良の選択肢は何ですか?
確かに、誰かが以前にこの問題に遭遇したに違いありません:)