把客户端也改成完成端口的吧

古墓丽影 发布于 2013/05/28 10:05
阅读 1K+
收藏 0

我测过了,完成端口的客户端  完胜。

50字节的包,可以每秒 3.5万。

而事件式 的只有 1.5万。

当然测试方法,使用方式,不同。

我的应用场景是 应答式,而不是“不负责任的发与收”。

不负责任的收与发,应该差不多,因为带宽是上限。




加载中
0
古墓丽影
出现这种结果应该是:
完成端口 处理 接收与发送的是 多个线程,收发不受制约
而事件式 只有一个线程在处理 收与发。
而瓶颈就在首发,完成端口是收好了通知你。而事件式是 告诉你去收。
优化一下事件式,应该差不了这么多。


不过完成端口好用的多。


0
伤神小怪兽
伤神小怪兽

引用来自“古墓丽影”的答案

出现这种结果应该是:
完成端口 处理 接收与发送的是 多个线程,收发不受制约
而事件式 只有一个线程在处理 收与发。
而瓶颈就在首发,完成端口是收好了通知你。而事件式是 告诉你去收。
优化一下事件式,应该差不了这么多。


不过完成端口好用的多。


    IOCP性能高于Event那是必定的,但作为一般的客户端性能要求并非是最重要的(除非是做代理服务器之类的客户端),当初之所以用Event实现客户端的原因可参考这篇文章(http://www.cnblogs.com/ldcsaa/archive/2013/04/28/3047081.html)。


    另外,如果有需要你也可以在现有代码的基础上实现IOCP客户端(参考Server代码),应该不难。
0
3
3ku

现在最新版本实现IOCP客户端了吗


伤神小怪兽
伤神小怪兽
新增Agent组件,用完成端口实现。 可以自己测试 Agent-PFM 和 TestEcho-PFM 作比较。
返回顶部
顶部