首页 > C# http 性能优化500毫秒到 60 毫秒

C# http 性能优化500毫秒到 60 毫秒

 

来源:https://www.cnblogs.com/hnsongbiao/p/9815808.html

 

偶然发现 C# 的 HttpRequest 要比 Chrome 请求同一Url 慢好多。C# HttpRequest 要500毫秒 而Chrome 只需要 39ms。

 

后来 整理 各种方法做了优化 

 

HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest;
request.KeepAlive = false;
request.ServicePoint.Expect100Continue = false;request.ServicePoint.UseNagleAlgorithm = false;
request.ServicePoint.ConnectionLimit = 65500;
request.AllowWriteStreamBuffering = false; 
request.Proxy = null;
response.Close();
request.Abort();

 

打开 KeepAlive 属性,这个可以打开一个tcp连接并在 一段时内重用tcp连接,从而加快http 请求。(默认是打开的)(我在开启keepalive 时出现 服务器关闭连接的错误,在请求完成后 加response.Close();request.Abort(); 后 错误消失)

Expect100Continue  的作用

发送一个请求, 包含一个Expect:100-continue, 询问Server使用愿意接受数据

接收到Server返回的100-continue应答以后, 才把数据POST给Server

所以关闭它可以加快http 请求。

还有 ConnectionLimit 默认是2 ,就是说 系统 只能 并发 2个http 请求,所以 这个属性可以以适当增大。



Proxy 属性在 .Net 4.0 时应该在 config 文件中增加:

 


<defaultProxy
enabled="false"
useDefaultCredentials="false" >





 

其他版本.NET 可以设置为null。

原因:NET4.0或3.5中的默认代理是开启的,而我并没有设置!故只有等待超时后才会绕过代理,这就阻塞了.其他的可以自己百度。到这了 http 的响应速度由原来 的500ms 减小的60ms,但还是 比不上Chrome。

转载于:https://www.cnblogs.com/sharing1986687846/p/10266254.html

更多相关:

  •       获取事件列表 getEventListeners(window)//获取window绑定的所有监听事件列表//----------------------------------------getEventListeners(document.querySelector("选择器"))//获取指定DOM的所有监听事件...

  •   在后台获取upload file 数量的时候发现count一直为0,经检查发现了问题 ,代码如下:   前台: var data = $("#DetailForm").serialize(); $.ajax({ url: '@Url.Action("SaveRequest", "RegistrationRequest")', ty...

  •  * 启用ViewState的情况下,设置某一服务器控件的Value后,然后再将期Visible设置成false * 在回传时(PostBack)其Value不会丢失,ViewState会保留状态 * 如 if(!IsPostBack){ *    txtName.Text="xxxx"; *    txtName.Visible=f...

  • 限流器是后台服务中十分重要的组件,在实际的业务场景中使用居多,其设计在微服务、网关、和一些后台服务中会经常遇到。限流器的作用是用来限制其请求的速率,保护后台响应服务,以免服务过载导致服务不可用现象出现。限流器的实现方法有很多种,例如 Token Bucket、滑动窗口法、Leaky Bucket等。在 Golang 库中官方给我们提供...

  • HTTP和HTTPSHTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的方法。HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)简单讲是HTTP的安全版,在HTTP下加入SSL层。SSL(Secure...

  •     注意!!!(修改于2020年7月18日)   在安卓9.0以下或者IOS10.X以下手机端H5页面不支持,在这两种情况下的系统只能使用ajax或者原生js请求后台数据 报错截图如下 报错内容: {"message": "Network Error","name": "Error","stack": "Err...

  • 一.  GET_POST与开发者工具 1.      浏览器的基本工作规则 浏览器请求访问服务器,服务器返回数据 (1)    请求的格式 GET:长度不能大于2k参数明文显示在地址栏,不保密,通常用在查询请求 POST:长度可以很大,参数写在请求体内,相对保密,通常用是提交内容的请求 上图中a.com是域名,x...

  • JSP相当于在HTML页面中加上Java代码,一般在标签中放入主要代码。 在JSP里用<%...%>把Java代码包含起来的。   Servlet的生命周期: ①被服务器实例化后,容器运行init方法。 ②当请求(Request)到达时,运行service方法,service方法会运行与请求对应的doXXX方法(d...

  • 现在制作个人网页越来越流行,你会发现很多设计师、媒体人、职场人都建立了自己的网站,用来积累粉丝、展示作品、或者找工作。那么不懂技术知识、也没有太多资金的学生,可以建立自己的网站吗?当然也是可以的!其实个人网站建立的原理都差不多,不懂技术的情况下,可以使用自助建站系统,快速生成个人网站。个人网页制作教程如下:进入「上线了」官网,注册账号...

  • 在plugin.config中添加 stats_over_http.so 然后重启服务器,在浏览器中输入下面的地址查询 http://host:port/_stats 这里host是ATS所在的hostname或是ip,port就是侦听http连接的端口,按照配置我这里分别是10.10.110.162和8081 http:/...

  • 改动信息 详情可以查看ceph官网nautilus Dashboard功能 增加的新功能 支持多用户使用SSO的用户验证模式支持审计模式新的登录页,可以展示更多的集群健康指标使用swagger api的rest api文档 增加的新的管理特性 对于OSD的管理(将osd标记为down,out,修改osd的config ,恢复...

  • 1.Proteus中添加组件后双击引脚可以快速生成一个最近的端口。 2.按A调出设置界面 3.在String中写:net=H#,"H"可以换成自定义前缀。count为起始值,increment为增量。 4.依次点击想要编号的引脚。 转载于:https://www.cnblogs.com/viaduct/p/5842429.html...

  • 1.Goto Anything-快速查找(ctrl + P)   输入@+函数名可以快速找到函数输入#+文本可以快速进行文件内文本匹配2.命令模式Ctrl+Shift+P:打开命令面板    Ctrl+P:搜索项目中的文件   Ctrl+W:关闭当前打开文件  Ctrl+Shift+W:关闭所有打开文件 Ctrl+Shift+V:粘贴...