码迷,mamicode.com
首页 > 其他好文 > 详细

Coroutine协程库:网络性能完爆Asio异步模型

时间:2015-08-11 22:53:02      阅读:377      评论:0      收藏:0      [点我收藏+]

标签:

在purecpp社区的github组织中有一个协程库:https://github.com/topcpporg/cpp_features技术分享

近日有用户找到我,想要了解一下coroutine库在网络方面的性能,于是选取已入选标准库的boost.asio网络库的异步模型做了一次对比测试,结果完爆asio异步模型,coroutine库网络性能是asio异步模型的2-14倍,使用8线程处理小包时,QPS可达670万/秒。

简要介绍一下测试流程:

  1.TCP协议,C/S是同一台物理机的两个进程,建立1000条连接

  2.服务的是echo服务器,收到数据原样发回,客户端无限次发送指定大小的数据包,测试取样包大小为:4字节、32字节、128字节、1024字节、4096字节

  3.不做“小包拼成大包一起发”和数据解析.

  4.分不同线程数测试,测试取样线程数为:单线程,2线程,4线程,8线程

  5.用于对比测试的两组程序分别为:

    A)用Coroutine搭配asio同步模型(纯属偷懒,从系统调用写起会更快)编写

    B) 用boost.asio异步模型编写

  6.测试环境是一台拥有2颗6核12线程CPU的物理机,共24个逻辑线程,Linux系统版本为:CentOS 6.2

好了,话不多说,直接上测试结果

技术分享

 

技术分享技术分享技术分享技术分享

 

两份测试代码分别在github仓库中的:coroutine/unit_test/benchmark和coroutine/unit_test/benchmark/asio目录下.

如果你对Coroutine库的技术内幕感兴趣,可以加入QQ交流群:296561497

 

Coroutine协程库:网络性能完爆Asio异步模型

标签:

原文地址:http://www.cnblogs.com/yyzybb/p/4722459.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!