本文承接上一篇,背景资料不再重述。
我按照我实际项目的需求,抽取其网络通讯的部分,用.NET远程处理和WCF分别实现,然后测量所耗时间,以此判断两者在我的场景中的性能。
心急的直接跳到最后,有图表和结论。
测试配置
WCF和.NET远程处理都用tcp信道,信道不加密,不使用app.config文件。都是用release编译,不优化。
测试中,客户端向服务端获取进入条件,然后申请进入服务端。服务端收到客户端进入申请后,检查客户端的密码和身份资料,然后让它进入。序列图如下。Profile包括一幅139KB的图片。

测量方法
上面所述的过程在程序中进行20次。我编写了一个批处理文件,令程序每隔30秒运行一次,共运行8次。所以上述过程一共执行20×8=160次。
客户端程序一共启动8次,而服务端程序只启动一次。(为先后8个客户端服务。)
进行三组测试。第一次客户端、服务端在一台机器上,访问、监听localhost;第二次客户端、服务端在一台机器上,访问、监听本机的真正IP地址;第三次分机测试。
所得数据
| WCF | .NET远程处理 | WCF | .NET远程处理 | WCF | .NET远程处理 | |
| 参数 | ip port path (本机) | |||||

本文对比了.NET远程处理和WCF在实际项目中的性能,通过配置TCP信道,不加密,不使用配置文件,进行多次测试。结果显示,在非localhost环境下,.NET远程处理的效率约为WCF的2.5倍,与Marcin Celej的测试结果相符,不同于MSDN的官方说法。测试代码可供下载验证。
与WCF的性能对比(2)&spm=1001.2101.3001.5002&articleId=7243871&d=1&t=3&u=7c8dfbf11b8c4717a169faf0ecb1438c)
923

被折叠的 条评论
为什么被折叠?



