标签:
在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
标签:
原文地址:http://www.cnblogs.com/yyzybb/p/4722459.html