WCF 中 TCP 与 HTTP 性能简单比较

简介:

在使用 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 进行传输的,所以作用较小。

 

 

反思:

由于第一次使用了外网,会有防火墙等不确定因素,造成数据失真。第二次在本地时,由于进行了数据库访问,同样可能导致数据失真。所以以上结论基于全内存数据,本地环境进行数据传输测试。

之前由于需要也进行过各种性能测试。经常懒得进行最直接的测试,而是直接使用应用程序中的环境进行测试。由于许多不确定因素:服务器、网络、数据库等,造成了数据经常失真,又不得不排除各种原因,最后还是得使用最直接最纯净的方式来进行数据测试。得不偿失啊!

以后要做性能测试,就一定要严谨,要在测试前想好纯净的测试用例,编写正式、直接的测试代码,这样其实是最省时的方法。



本文转自BloodyAngel博客园博客,原文链接:http://www.cnblogs.com/zgynhqf/p/3161042.html,如需转载请自行联系原作者

相关文章
|
7月前
|
编解码 测试技术 索引
性能工具之 Jmeter 使用 HTTP 请求编写 HLS 脚本
在我们简要介绍了 HLS 协议的基础知识,接下来我们详细介绍一种使用 Jmeter 编写压测 HLS 协议脚本的方法。
149 1
性能工具之 Jmeter 使用 HTTP 请求编写 HLS 脚本
|
3月前
|
数据采集
Haskell爬虫:连接管理与HTTP请求性能
Haskell爬虫:连接管理与HTTP请求性能
|
25天前
|
网络协议 安全 Go
Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
【10月更文挑战第28天】Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
49 13
|
1月前
|
算法 网络安全 数据安全/隐私保护
HTTPS的性能
【10月更文挑战第23天】HTTPS的性能
38 5
|
7月前
|
消息中间件 前端开发 JavaScript
第七篇 提升网页性能:深入解析HTTP请求优化策略(二)
第七篇 提升网页性能:深入解析HTTP请求优化策略(二)
208 1
|
3月前
|
缓存 网络协议 网络安全
HTTPS性能受到多个因素的影响
HTTPS性能受到多个因素的影响
110 10
|
3月前
|
缓存 负载均衡 算法
HTTPS对性能的一些影响
HTTPS对性能的一些影响
128 9
|
7月前
|
Web App开发 存储 缓存
第八篇 提升网页性能:深入解析HTTP请求优化策略(三)
第八篇 提升网页性能:深入解析HTTP请求优化策略(三)
175 0
|
7月前
|
编解码 前端开发 JavaScript
第六篇 提升网页性能:深入解析HTTP请求优化策略(一)
第六篇 提升网页性能:深入解析HTTP请求优化策略(一)
|
7月前
|
运维 Serverless API
Serverless 应用引擎产品使用之阿里函数计算中要关掉http触发器的jwt认证才可以进行性能探测如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。