网络库压力测试:mongols VS evpp
2018-08-26 17:15:39来源:博客园 阅读 ()
evpp是360出品的一个网络库,基于libevent,进行了许多改造,对c++11友好。据称比libevent性能要好。
到底有多好呢?360开发人员有自己的测试,信不信由你。
evpp源码下有个httpecho演示,我把它改为hello,world的样子:
void DefaultHandler(evpp::EventLoop* loop, const evpp::http::ContextPtr& ctx, const evpp::http::HTTPSendResponseCallback& cb) { std::stringstream oss; /*oss << "func=" << __FUNCTION__ << " OK" << " ip=" << ctx->remote_ip() << "\n" << " uri=" << ctx->uri() << "\n" << " body=" << ctx->body().ToString() << "\n";*/ oss <<"hello,world"; //ctx->AddResponseHeader("Content-Type", "application/octet-stream"); ctx->AddResponseHeader("Content-Type", "text/html;charset=UTF-8"); ctx->AddResponseHeader("Server", "evpp"); cb(oss.str()); }
然后设置线程数为4,匹配我的笔记本。
build,运行下,端口在29099。
进而进行ab压力测试:
分别是:
- ab -kc100 -n100000 http://127.0.0.1:29099/
- ab -kc500 -n100000 http://127.0.0.1:29099/
- ab -kc800 -n100000 http://127.0.0.1:29099/
- ab -kc1000 -n100000 http://127.0.0.1:29099/
前三个跑的比较好,最后一个基本跑不动,报
[warn] Error from accept() call: Too many open files
前三个的RPS保持在[29000,36000)区间,确实比libevent要好些。但绝对没有360开发人员宣传的那么好:
该图显示evpp对多个网络库进行了对比。对此,我只能说,其他库本就没有那么好。
同样的输出,同样的线程数,mongols的测试数据都要优于evpp,RPS在[38000,42000)区间。如果使用单线程,mongols的RPS基本42000+。而且,mongols的内存占用仅仅为evpp的1/4。
一句话,不要迷信大厂!如图:
重要的事情应该再说一遍:
不要迷信大厂!
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:关于NativeEvent的处理
- 一个工业级、跨平台、轻量级的 tcp 网络服务框架:gevent 2020-06-05
- 捕获未经测试的返回值 2020-04-11
- 设计并测试Trapezium类 代码参考 2020-03-29
- 【新年呈献】高性能网络通信框架 HP-Socket v5.7.1 2020-01-07
- 最小割最大流定理&残量网络的性质 2019-12-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash