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压力测试:

分别是:

  1. ab -kc100 -n100000 http://127.0.0.1:29099/
  2. ab -kc500 -n100000 http://127.0.0.1:29099/
  3. ab -kc800 -n100000 http://127.0.0.1:29099/
  4. 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

一句话,不要迷信大厂!如图:

重要的事情应该再说一遍:

不要迷信大厂

网络库压力测试:mongols VS evpp的更多相关文章

  1. linux下的CPU、内存、IO、网络的压力测试

    linux下的CPU.内存.IO.网络的压力测试  要远程测试其实很简单了,把结果放到一个微服务里直接在web里查看就可以了,或者同步到其他服务器上 一.对CPU进行简单测试: 1.通过bc命令计算特 ...

  2. [转帖]linux下的CPU、内存、IO、网络的压力测试

    linux下的CPU.内存.IO.网络的压力测试 https://www.cnblogs.com/zhuochong/p/10185881.html 一.对CPU进行简单测试: 1.通过bc命令计算特 ...

  3. [转帖]linux下CPU、内存、IO、网络的压力测试,硬盘读写速度测试,Linux三个系统资源监控工具

    linux下CPU.内存.IO.网络的压力测试,硬盘读写速度测试,Linux三个系统资源监控工具 https://blog.51cto.com/hao360/1587165 linux_python关 ...

  4. Linux系统下的CPU、内存、IO、网络的压力测试

    本文转载自:小豆芽博客 一.对CPU进行简单测试: 1.通过bc命令计算特别函数 例:计算圆周率 echo "scale=5000; 4*a(1)" | bc -l -q MATH ...

  5. 转://linux下的CPU、内存、IO、网络的压力测试工具与方法介绍

    转载地址:http://wushank.blog.51cto.com/3489095/1585927 一.对CPU进行简单测试: 1.通过bc命令计算特别函数 例:计算圆周率 echo "s ...

  6. [转贴]LTP--linux稳定性测试 linux性能测试 ltp压力测试 ---IBM 的 linux test project

    https://blog.csdn.net/melody157398/article/details/24354415   LTP--linux稳定性测试 linux性能测试 ltp压力测试 ---I ...

  7. LTP--linux稳定性测试 linux性能测试 ltp压力测试 ---IBM 的 linux test project

    LTP--linux稳定性测试 linux性能测试 ltp压力测试 ---IBM 的 linux test project Peter盼 2014-04-23 11:25:49  20302  收藏  ...

  8. LTP--linux稳定性测试 linux性能测试 ltp压力测试 内核更新 稳定性测试

    LTP--linux稳定性测试 linux性能测试 ltp压力测试 zhangzj1030关注14人评论33721人阅读2011-12-09 12:07:45   说明:在写这篇文章之前,本人也不曾了 ...

  9. LTP--linux稳定性测试 linux性能测试 ltp压力测试 ltp-pan

    LTP--linux稳定性测试 linux性能测试 ltp压力测试 zhangzj1030关注14人评论33710人阅读2011-12-09 12:07:45   说明:在写这篇文章之前,本人也不曾了 ...

随机推荐

  1. selenium切换窗口后定位元素出现问题的解决方案

    在做UI自动化的过程中,有时需要由一个窗口跳转到另一个窗口,这时直接去定位页面元素,可能会出现问题,这时,我们需要将driver与新的窗口进行绑定. 完整代码如下:(python版) #coding= ...

  2. 重新学习Java的开始~

    安装jdk的步骤及解释已经在这篇文章中详细阐述了,如下: http://www.cnblogs.com/godtrue/p/4338323.html 1.如何安装库源文件--摘自coreJava 库源 ...

  3. <iframe>和<frame>区别

    1.frame不能脱离frameSet单独使用,iframe可以 2.frame不能放在body中,否则不能正常显示 frame不能和body同时使用 <!--<body>--> ...

  4. __x__(44)0910第六天__表单

    form表单: form必须属性:action,指定一个服务器地址. 若希望表单中的数据发送给服务器,必须设置name属性. 用户填写的信息,将会追加在url地址?后面,以查询字符串的形式发送给服务器 ...

  5. CSS3_天猫商品墙

    天猫商品墙 网格状布局: 1.  ul li 布局 2.  float: left; 使得元素在一行.注意: 父元素解决高度塌陷 3.  ul 设置固定宽,使得元素挤下去 4.  给父元素加一个 pa ...

  6. ActiveMQ的安装与使用(单节点)

    1. 安装 JDK 并配置环境变量(略) JAVA_HOME=/usr/local/java/jdk1.7.0_72 2. 下载 Linux 版的 ActiveMQ $ wget http://apa ...

  7. Dev_GridView自定义表格

    #region 自定义表格 //初始化测斜分析数据表 BandedGridView view = advBandedGridView1 as BandedGridView; view.BeginUpd ...

  8. FTP服务器匿名登录

       ftp需要开通对匿名用户.本地用户.及虚拟用户的支持.并且特别对虚拟用户中的(stu.teacher.admin)分别授予不同的权限.  1.创建多层目录,然后挂载 2.配置yum源文件 3.安 ...

  9. 微信小程序计算经纬距离

    微信小程序计算经纬距离 微信小程序计算两点间的距离 getDistance: function (lat1, lng1, lat2, lng2) { lat1 = lat1 || 0; lng1 = ...

  10. 基于hortonworks的大数据集群环境部署流水

    一.ambari及HDP安装文件下载地址: 1.系统 操作系统:CentOS7 2.软件 本次安装采用最新版本: ambari-2.7.0.0 hdp-3.0.0.0 详细信息及下载地址如下: Amb ...