.net 的 HttpWebRequest 或者 WebClient 在多线程状况下存在并发链接限制,这个限制在桌面操做系统如 windows xp , windows 7 下默认是2,在服务器操做系统上默认为10. 若是不修改这个并发链接限制,那么客户端同时能够创建的 http 链接数就只有2个或10个。对于一些诸如浏览器或网络蜘蛛的应用,2个或10个并发数量实在太少,大大影响应用的性能。之因此有这个并发链接限制,是由于 http 1.0 和 http 1.1 标准规定并发链接数最大为2. 不过目前主流的浏览器都已经不遵循这个规则了,但 .net framework 依然默认遵循这个规则。html
不少文章说用异步方式访问 HttpWebRequest 能够提升并发性能,但我测试下来,若是不修改这个默认并发链接数,同步或异步方式访问性能都很很差。windows
调整这个默认并发链接限制的方法很简单浏览器
只要在程序中设置:服务器
System.Net.ServicePointManager.DefaultConnectionLimit = 512;网络
这个值最好不要超过1024。多线程
咱们也能够在app.config 中对最大并发链接数进行设置,方法以下:并发
<configuration><system.net><connectionManagement><addaddress = "http://www.google.com"maxconnection = "512"/><addaddress = "*"maxconnection = "512"/></connectionManagement></system.net></configuration>
修改了这个设置后,并发性能明显提升,从原来每秒钟20次直接上升到每秒钟1000屡次。app
http://www.cnblogs.com/eaglet/archive/2012/05/18/2507179.html 异步