2

次の URL に約 120 の URL リクエストを送信する必要があります

HttpWebRequest r = (HttpWebRequest)WebRequest.Create("https://play.google.com/store/search?q=" + keyword + "&c=apps&hl=en");

リクエストごとにキーワードが異なる場合、応答ページを取得し、ページを処理して、文字列操作を含む応答ページからアプリの数を抽出します。しかし、これら 120 件のリクエストを処理するには 1 分以上かかります。

マルチスレッドを考えていますが、同時に、より効率的なものを提案して、時間を最大1〜2秒に短縮できますか.

4

2 に答える 2

0

GetResponseAsyncの代わりに を呼び出して、呼び出しを非同期で行いますGetResponse。これにより、複数のリクエストを同時に送信できます。ただし、同時に処理できるリクエストの数には制限があることに注意してください。したがって、限られた速度の増加しか得られませんが、試してみる価値があります。

リクエストの結果の処理にかかる時間は、全体のほんの一部です。大部分は通信によって消費されるため、結果をマルチスレッドで処理してもあまり役に立ちません。

于 2012-11-10T15:24:40.613 に答える
0

処理時間が 1 ~ 2 秒に短縮される可能性はほとんどありません。確かに、最適化によってあちこちで時間を短縮できるかもしれませんが、その一部はハードウェアとインターネット接続に制限されます.

メニーコア プロセッサを使用し、スレッドを大量に使用することを除けば、時間はそれほど短縮されません。マルチスレッドはおそらく最善の策ですが、その方法では 300 ~ 600% のパフォーマンス向上は得られません。

于 2012-11-10T15:21:12.480 に答える