本文承接上一篇,背景资料不再重述。
我按照我实际项目的需求,抽取其网络通讯的部分,用.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远程处理 | |
参数 |