2

我必须向以下 URL 发送大约 120 个 URL 请求

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

如果每个请求中的关键字不同,我会获取响应页面,处理页面并从响应页面中提取应用程序计数,其中包括字符串操作。但是处理这120个请求需要一分钟多的时间。

我正在考虑多线程,但同时,你能建议一些更有效的东西,所以我将时间减少到最多 1-2 秒。

4

2 回答 2

0

您不太可能将处理时间缩短到 1-2 秒。当然,您可能可以通过优化在这里和那里减少一些时间,其中的一部分将受到硬件和互联网连接的限制。

除了拥有多核处理器和使用大量线程之外,时间不会减少那么多。多线程可能是您最好的选择,但这样您不会获得 300-600% 的性能提升。

于 2012-11-10T15:21:12.480 回答
0

通过调用GetResponseAsync而不是GetResponse. 这允许您同时发送多个请求。但请记住,可以同时处理的请求数量是有限的。所以你只会获得有限的速度提升,但值得一试。

处理请求的结果只需要总时间的一小部分。通信消耗了很大一部分,因此使用多线程处理结果并没有多大帮助。

于 2012-11-10T15:24:40.613 回答