handy - C++11 网络库


BSD
Linux
C/C++

软件简介

handy

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的性能不相上下

单机千万并发连接测试

安装

make

examples

#include <handy/handy.h>
using namespace handy;

int main(int argc, const char* argv[]) {
    EventBase base;
    Signal::signal(SIGINT, [&]{ base.exit(); });
    TcpServerPtr svr = TcpServer::startServer(&base, "", 99);
    exitif(svr == NULL, "start tcp server failed");
    svr->onConnRead([](const TcpConnPtr& con) {
        con->send(con->getInput());
    });
    base.loop();
}