您的位置:首页 > 理论基础 > 计算机网络

WCF 中 TCP 与 HTTP 性能简单比较

2013-10-06 18:19 218 查看
在使用 WCF 时,为了更好地进行调试,我都选择了 HTTP 协议进行数据传输。最近项目对性能要求比较高,所以就换成了使用 TCP 协议。并对二者的性能进行了一个简单的测试。以下是测试结果:
 
环境: 

CPU: E5800 3.20GHz+3.19GHz 

RAM: 7.97GB 

64 bit OS, 64 bit processor
 
把服务端、客户端都部署在本机进行数据传输测试。分如下场景进行测试: 

1. 1000次请求,每次请求传输 1 个对象,每个对象 80 个属性: 

HTTP 平均耗时:6.2s左右。 

TCP 平时耗时:3.9s左右。 

结论:使用 TCP 连接,可以节省在建立连接时的性能消耗。对于进行大量连接时,相对 HTTP 有比较明显的性能提升。
2. 100次请求,每次请求传输 500 个对象,每个对象 80 个属性: 

HTTP 平均耗时:19s左右。 

TCP 平时耗时:18s左右。 

结论: 

当使用单个连接传输大数据量时,速度则主要取决于数据序列化及网络传输速度,由于 Http 也是基于 TCP 进行传输的,所以作用较小。
 
 
反思:
由于第一次使用了外网,会有防火墙等不确定因素,造成数据失真。第二次在本地时,由于进行了数据库访问,同样可能导致数据失真。所以以上结论基于全内存数据,本地环境进行数据传输测试。
之前由于需要也进行过各种性能测试。经常懒得进行最直接的测试,而是直接使用应用程序中的环境进行测试。由于许多不确定因素:服务器、网络、数据库等,造成了数据经常失真,又不得不排除各种原因,最后还是得使用最直接最纯净的方式来进行数据测试。得不偿失啊!
以后要做性能测试,就一定要严谨,要在测试前想好纯净的测试用例,编写正式、直接的测试代码,这样其实是最省时的方法。

 

欢迎转载,转载请注明:

转载自 胡庆访http://zgynhqf.cnblogs.com/ ]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐