- 授权协议: BSD
- 开发语言: C/C++
- 操作系统: Linux
- 软件首页: http://git.oschina.net/yedf/handy
- 软件文档: http://git.oschina.net/yedf/handy
软件介绍
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();
}
