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(); }