C 网络通信库性能大比拼

该文对比了cppcms、boost asio、libevent、muduo和nginx在作为REST server时的网络I/O性能。通过wrk工具进行压力测试,结果显示muduo表现最佳,cppcms性能最弱,其他库介于两者之间。cppcms和boost asio因使用mutex导致性能下降,而muduo的高性能源于其专注于Linux平台的设计。
摘要由CSDN通过智能技术生成

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

C/C++网络通信库有不少,本次benchmark的目的是为了公平的评估它们的网络I/O性能,当然是作为REST server, 因此每个server都写了一些代码,好在不是特别复杂。这个测试经过了好几轮,本文给出了最终的结论。

先上结论,大家都忙:)

候选者:cppcms, boost asio, libevent, muduo和 nginx,nginx不是库,这里做测试使用它作为基准,毕竟很多人心里,它是不可挑战的。

结论:QPS的比拼结果,cppcms最弱,boost asio好很多,libevent好更多,nginx比libevent还要好点,muduo最好。

但是,不要小瞧这里最弱的cppcms,它仍可以轻易击败php, ruby, java, go, python, nodejs等语言编写的rest server。

下面介绍测试的方法

测试工具:wrk

之前选用过apache的ab test工具,不要被名字骗了,和常说的ab test方法没什么关系。这是一个压力测试工具,但是明显不能将压力升到最高,还是wrk效果最好。因为压测的目标是,击穿服务器,然后减少点压力,找到能够让服务器网络程序正常工作的最大压力。

找测试工具的唯一标准就是能不能用足压测客户机器的资源,释放最大的压力。其他非C/C++的压测工具也就直接谢绝了,这不是什么开发效率至上的场合。

wrk -t4 -c200 -d60s "http://167serverip:serverport/collect?v=1"
wrk tool; 4 threads; 200 concurrency connection; duration 60s.

测试服务器

Table
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值