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

在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异步模型,转载请注明。



You must enable javascript to see captcha here!

Copyright © All Rights Reserved · Green Hope Theme by Sivan & schiy · Proudly powered by WordPress

无觅相关文章插件,快速提升流量