C++11 网络库 handy
本文导语: handy a HANDY network C++11 libray on linux. reactor 模式 支持优雅退出 无锁日志系统,按时间间隔轮替 代码简短 参考muduo的实现,采用C++11简化代码 ubuntu14 64位/g++ 4.8.1上通过测试 性能 handy的http服务器性能对比 ...
a HANDY network C++11 libray on linux.
reactor 模式
支持优雅退出
无锁日志系统,按时间间隔轮替
代码简短
参考muduo的实现,采用C++11简化代码
ubuntu14 64位/g++ 4.8.1上通过测试
性能
handy的http服务器性能对比
对比了libevent2.0.21的test下http_bench以及nginx的性能
测试环境为thinkpad t420笔记本上的ubuntu14 64位虚机
nginx使用agentzh的echo模块
worker_processes=1
location /hello {
echo "hello world!"
}
http_bench为默认参数
handy使用的程序为example下的http-echo
其中nginx的qps较低,主要原因为nginx的响应内容较多,包括了多个header,并且使用chunk编码
handy和libevent的性能不相上下
安装./build_detect_platform && make
examples#include "handy.h"
#include "daemon.h"
using namespace std;
using namespace handy;
int main(int argc, const char* argv[]) {
EventBase base;
Signal::signal(SIGINT, [&]{ base.exit(); });
TcpServer echo(&base, Ip4Addr(99));
echo.onConnRead(
[](const TcpConnPtr& con) {
con->send(con->getInput());
}
);
base.loop();
}