用webclient抓取新浪财经的数据很慢,求帮忙解决

morebread 2013-10-20 08:26:32
写了个小工具用来采集新浪财经的证券信息页面的数据。发现在采集的时候速度非常慢,200k/s已经是最大速度了,一般在80K/s左右,但是我这边的网络是10M的光纤。代码如下

private void Thread_read(object obj)
{
int count = 0;
while (true)
{
try
{
WebClient client = new WebClient();
byte[] myDataBuffer = client.DownloadData(string.Format("http://vip.stock.finance.sina.com.cn/corp/go.php/vCI_CorpInfo/stockid/{0}.phtml", ss[count++]));
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}


这个是线程函数,用来测试性能的。程序起了20个这样的线程,ss是一个string数组,里面存放了不同的证券代码,一共大概2000多个。照理说20个线程同时下载起码会把带宽给占满,但是现在才80~200k/s之间徘徊。请问是什么问题??
...全文
333 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
showjim 2013-10-21
  • 打赏
  • 举报
回复
有可能是下载实例数量不够,有可能是ServicePointManager.DefaultConnectionLimit太小,有可能是对方服务器的带宽限制。
winner2050 2013-10-20
  • 打赏
  • 举报
回复
我常年采集数据。 这种现象很正常,尽管迅雷能疯狂下载数据,采集速度却无法填满宽带。
bdmh 2013-10-20
  • 打赏
  • 举报
回复
实际与理想往往差距甚远,达不到理想效果跟很多因素有关,服务器的效率,宽带商是否奸商,网路是否良好
threenewbee 2013-10-20
  • 打赏
  • 举报
回复
先测试下,同时运行几个这样的程序能提高带宽的利用么?
morebread 2013-10-20
  • 打赏
  • 举报
回复
需要测试的话我可以把ss数组里的内容放上来

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧