3
回答
把客户端也改成完成端口的吧
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

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

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

而事件式 的只有 1.5万。

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

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

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




举报
古墓丽影
发帖于5年前 3回/1K+阅
共有3个答案 最后回答: 4年前
出现这种结果应该是:
完成端口 处理 接收与发送的是 多个线程,收发不受制约
而事件式 只有一个线程在处理 收与发。
而瓶颈就在首发,完成端口是收好了通知你。而事件式是 告诉你去收。
优化一下事件式,应该差不了这么多。


不过完成端口好用的多。


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

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


不过完成端口好用的多。


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


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