A C++ High Performance Net Library 学生时代写着玩,年久失修,不要关注啦!
A C++ High Performance NetServer (version 0.5.0)
本项目为C++11编写的基于epoll的多线程网络服务器框架,应用层实现了简单的HTTP服务器HttpServer和一个回显服务器EchoServer,其中HTTP服务器实现了HTTP的解析和Get方法请求,目前支持静态资源访问,支持HTTP长连接;该框架不限于这两类服务器,用户可根据需要编写应用层服务。
$ make
$ make clean
$ ./httpserver [port] [iothreadnum] [workerthreadnum]
例:$ ./httpserver 80 4 2
表示开启80端口,采用4个IO线程、2个工作线程的方式
一般情况下,业务处理简单的话,工作线程数设为0即可
本项目采用了两款开源的HTTP压力测试工具“wrk”和“WebBench”进行测试,其中使用了林亚改写后的WebBench
测试方法
测试环境(虚拟机环境下测试,性能可能较物理机低)
wrk测试结果:9万+QPS、4万+QPS
内存中的HTTP报文(无磁盘IO影响)
index.html网页(有磁盘IO影响)
WebBench测试结果
内存中的HTTP报文(无磁盘IO影响)
index.html网页(有磁盘IO影响)
内存中的HTTP报文(无磁盘IO影响)
index.html网页(有磁盘IO影响)
内存中的HTTP报文(无磁盘IO影响)
index.html网页(有磁盘IO影响)
See LICENSE
内存池等
本项目将一直进行开发和维护,也非常欢迎各位小伙伴提出建议,共同学习,共同进步!
Enjoy!