handy C++11 网络库

程序名称:handy

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

handy 官网

http://git.oschina.net/yedf/handy

相关编程语言

BlazeDS 是一个基于服务器的Java 远程控制(remoting...
OVal 是一个可扩展的Java对象数据验证框架,验证的规...
Volta 是一套开发工具,专为开发分布式、实时系统应...
OpenDDS 是一个开源的 C++ 实现的 对象管理组织 OMG...
JADE (Java Agent DEvelopment Framework) 是一个完...
FastMM ,在D2006和2007中已代替了原来的内存管理器。