WCF的Restful和TCP方式调用性能比较
1. 实验背景
关于WCF提供分布式访问服务,最常用的两种方式Restful方式和Tcp方式,在本地测试了一把。
结果显示,还是Rest方式,在压力测试下,性能最佳。
而且处于跨平台的考虑,和自动化测试方便,更会采用Restful方式提供服务。
2. WCF服务功能描述:
该服务为所有客户端(CS客户端或B/S浏览器端),提供实时和统一的不重复的流水号
3. 测试结果
测试1: 基于Restful 方式提供服务,客户端使用http路由请求方式访问服务:
Rest服务地址: http://xxx.xxx.xxx.xxx:6211/ITSTemplate.Study.RestAPI/SeqService/
两个Client,分别调用100000次,平均调用时间:0.59~0.61ms,性能是TCP方式的50倍(2.66/0.59)。
调用前,可以通过netstat -aon|findstr "6211", Restful还没有客户端调用实例。
调用中,可以通过netstat -aon|findstr "6211", Restful有2个客户端调用实例。
调用完毕,最后一次调用完毕,大概1分钟左右,WCF会自动释放服务端建立的6211端口实例,可以看见每次平均调用的时间为: 0.59~0.61 毫秒
测试2: 基于TCP 方式提供服务,客户端使用接口Libary引用类库方式访问服务:
TCP服务地址: net.tcp://xxx.xxx.xxx.xxx:6212/ITSTemplate.Study.RestAPI/SeqService/
两个Client,分别调用100000次,平均调用时间: 2.66 s
调用前,可以通过netstat -aon|findstr "6212", TCP还没有客户端调用实例。
调用中,可以通过netstat -aon|findstr "6212", TCPl有2个客户端调用实例。
调用完毕,最后一次调用完毕,大概1分钟左右,WCF会自动释放服务端建立的6211端口实例,可以看见每次平均调用的时间为: 2.66 毫秒
总结:下一节,我将测试在远程云服务器,测试REST的并发性能; 设置REST的响应超时时间为1秒。
并且通过MQ方式,尽可能解决服务器对并发请求的处理能力,对客户端的业务请求做:异步请求和异步响应。
WCF的Restful和TCP方式调用性能比较的更多相关文章
- 以WCF安全认证方式调用通用权限管理系统获取基础信息资料
在B/S开发中,涉及到获取系统基础资料的问题,因为是在不同平台下的开发,采用了WCF方式获取. 下面是一个调用通用权限管理系统(吉日嘎拉)基础信息资料的一个demo供参考 调用原理图: web.con ...
- 关于C#调用非托管动态库方式的性能疑问
最近的项目中,因为一些原因,需要C#调用非托管(这里为C++)的动态库.网上喜闻乐见的方式是采用静态(DllImport)方式进行调用.偶然在园子里看到可以用动态(LoadLibrary,GetPro ...
- (转)将wcf 以webservice的方式调用
将wcf 以webservice的方式调用 问题:a公司使用wcf 发布服务(.net Framework 3.0 or 3.5),b公司需要使用a公司发布的服务 ,但b公司目前阶段只使用.net F ...
- WCF技术剖析之二十九:换种不同的方式调用WCF服务[提供源代码下载]
原文:WCF技术剖析之二十九:换种不同的方式调用WCF服务[提供源代码下载] 我们有两种典型的WCF调用方式:通过SvcUtil.exe(或者添加Web引用)导入发布的服务元数据生成服务代理相关的代码 ...
- WCF配置后支持通过URL进行http方式调用
最近遇到一个小型项目,主要就是通过手机写入NFC信息,思考许久后决定就写一个简单的CS程序来搞定这个问题,可是当涉及到手机和PC通信的时候首先考虑到的就是IIS,同时因为数据库是SQLite,思前想后 ...
- Post方式调用wcf服务
我们平常在PC端调用WCF服务,只要知道WCF服务的地址,客户端直接添加引用服务就可以使用了,殊不知还有其他方式,其实,我们也可以 通过HTTP POST的方式调用WCF服务,这样就不用添加引用了,在 ...
- WCF如何通过契约加编码方式调用
WCF采用基于契约的服务调用方法,通过System.ServiceModel.ChannelFactory<TChannel>直接创建服务代理对象. 创建服务代理 public stati ...
- WCF学习之旅—TCP双工模式(二十一)
WCF学习之旅—请求与答复模式和单向模式(十九) WCF学习之旅—HTTP双工模式(二十) 五.TCP双工模式 上一篇文章中我们学习了HTTP的双工模式,我们今天就学习一下TCP的双工模式. 在一个基 ...
- WCF开发框架形成之旅---WCF的几种寄宿方式
WCF开发框架形成之旅---WCF的几种寄宿方式 WCF寄宿方式是一种非常灵活的操作,可以在IIS服务.Windows服务.Winform程序.控制台程序中进行寄宿,从而实现WCF服务的运行,为调用者 ...
随机推荐
- Web Audio介绍
Web Audio还是一个比较新的JavaScript API,它和HTML5中的<audio>是不同的,简单来说,<audio>标签是为了能在网页中嵌入音频文件,和播放器一样 ...
- java stopwatch 功能
C#中有一个stopwatch的功能,主要是用来监测程序执行时间的.java之前一直都在用如下方式完成: public static void main(String[] args) { long s ...
- 网页webp转非webp的jpg gif png 图片
webp 谷歌提出的一种图片格式.支持动图: gif静图: png jpg 网页 webp / jpg / gif / png 图片提取. 已在微信.淘宝.京东.一号店上测试通过. 如果电脑上有 ch ...
- C#设计模式-原型模式
在软件系统中,当创建一个类的实例的过程很昂贵或很复杂,并且我们需要创建多个这样类的实例时,如果我们用new操作符去创建这样的类实例,这未免会增加创建类的复杂度和耗费更多的内存空间,因为这样在内存中分配 ...
- Java学习笔记(03)
一.回顾运算符: 一.控制语句 1.1 顺序结构 (最常见的) 特点:代码从上往下依次执行
- easyui 数据库修改部分(基于数据添加逻辑功能修改)
{iconCls:'icon-edit',text:'修改', handler:function(){ type="edit"; //判断是否选中一条数据 var data = $ ...
- 浅析z-index(覆盖顺序)和定位
多次在项目中遇到html页面元素的非期待重叠错误,多数还是position定位情况下z-index的问题.其实每次解决类似问题思路大致都是一样的,说到底还是对z-index的理解比较模糊,可以解决问题 ...
- 获取URL最后一个 ‘/’ 之后的字符
在开发项目的过程中,经常遇到需要解析论坛,博客等的URL的问题,比如:'abc/def/jkl' 或 'abc/def/jkl/',获取最后一个‘/’之后的所有字符‘jkl’,由于特殊字符'/'的个数 ...
- SSIS 参数的值
一,SSIS Parameter Value 的type 一个Parameter的Value共有三种类型,分别是Design Value,Server Value,Execution Value. D ...
- Sql Server系列:通用表表达式CTE
1 CTE语法WITH关键字 通用表表达式(Common Table Express, CTE),将派生表定义在查询的最前面.要使用CTE开始创建一个查询,可以使用WITH关键字. CTE语法: WI ...