C#多线程环境下调用 HttpWebRequest 并发连接限制
2016-05-24 17:43
676 查看
C#多线程环境下调用HttpWebRequest并发连接限制
.net的HttpWebRequest或者WebClient在多线程情况下存在并发连接限制,这个限制在桌面操作系统如windowsxp,windows7下默认是2,在服务器操作系统上默认为10.如果不修改这个并发连接限制,那么客户端同时可以建立的http连接数就只有2个或10个。对于一些诸如浏览器或网络蜘蛛的应用,2个或10个并发数量实在太少,大大影响应用的性能。之所以有这个并发连接限制,是因为http1.0和http1.1标准规定并发连接数最大为2.不过目前主流的浏览器都已经不遵循这个规则了,但.netframework依然默认遵循这个规则。很多文章说用异步方式访问HttpWebRequest可以提高并发性能,但我测试下来,如果不修改这个默认并发连接数,同步或异步方式访问性能都很不好。
调整这个默认并发连接限制的方法很简单
只要在程序中设置:
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多次。
C#多线程环境下调用HttpWebRequest并发连接限制
相关文章推荐
- Android 让WebView完美支持https双向认证(SSL)
- HTTP-GET 和 HTTP-POST
- http://poj.org/problem?id=1125 最短路径
- Ajax快速入门
- Android-async-http 网络请求框架(工具类)
- “耳根”发布新作《一念永恒》,刷新武汉网络文学IP版权交易纪录
- 神经网络中的activation function到底扮演什么样的角色
- 网络端口号
- linux下Apache服务器使用入门----httpd.conf
- 完整 httpd.conf 配置详情及中文注解
- JavaScript的XMLHttpRequest对象
- 概率神经网络实现Parzen窗方法
- httpUrlConnection 的 setDoOutput 与 setDoInput
- Android 网络访问框架——Retrofit
- 《图解HTTP》学习笔记(二)-简单的HTTP协议
- Can not find the tag library descriptor for "http://java.sun.com/jsp/jstl/core"
- Android中使用Volley框架进行网络请求
- IP分片和TCP分段
- http请求模拟
- post 相比get 有很多优点,为什么现在的HTTP通信中大多数请求还是使用get?