# tiny-muduo **Repository Path**: suycx/tiny-muduo ## Basic Information - **Project Name**: tiny-muduo - **Description**: 重写muduo网络库 - **Primary Language**: C++ - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-08-14 - **Last Updated**: 2024-09-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 简要说明 与原版muduo库相比: 移除了boost库,使用c++11标准库代替。 只用了epoll实现主要功能。 线程,锁等使用了C++11标准库提供的组件,代码更精简。 ## 1. 编译&&安装 硬性要求:linux环境,C++编译器支持C++11标准。 测试环境: ubuntu24.04, g++ 11.4.0, GNU Make 4.3, cmake version 3.28.3 编译&&安装: git clone https://github.com/SuycxZMZ/tiny-muduo.git cd tiny-muduo mkdir build cd build cmake .. make sudo make install 测试回显服务器: cd test ./echoserver ## 正常安装的话已经开始打印信息了,并等待客户端连接 测试回显客户端: telnet 127.0.0.1 8000 ## 输入任意字符,回车后,会打印出客户端输入的字符 ## 2. 主要组件说明 [1. 主要组件说明](docs/basicClass.md) [2. 连接流程说明](docs/basicConnectModel.md) [3. 读写流程说明](docs/basicReadWriteModel.md) [4. 关闭流程说明](docs/basicCloseModel.md) [5. one loop per thread 模型](docs/basicOneLoopPerThreadModel.md) [6. 日志模块说明](docs/basiclog.md) ## 3. 压力测试 WebBench webbench -c 500 -t 30 http://127.0.0.1:8080/ 环境:ubuntu24.04, 4核8G, 6代i5 ------------ 本机测试 127.0.0.1 ------------- ---- 关闭所有日志 ---- qps:30000左右 ---- 控制台日志 ---- qps:缩5倍以上 ---- 异步日志 ---- qps:损失不到1/4 ------------ 公网测试 ------------- qps:2000左右,主要瓶颈在网络发包上,完全吃不满cpu ------------ 局域网 ------------- 新的测试,环境:ubuntu24子系统,8代i7,24G内存,不限制子系统性能,仍然webbench本机测试 - 比较诡异的点,开8个工作线程之后QPS直接砍半,还没找到原因,之后可以拉局域网测一下,webbench也在本机不好分析 | tinymuduo | 4线程 | 8线程 | |:---------------:|:--------------------------:|:-------------------------:| | 连接数:500 | QPS: 30000
faild: 0 | QPS: 13000
faild: 0 | | 连接数:1000 | QPS: 30000
faild: 0 | QPS: 13000
faild: 0 | | 连接数:10000 | QPS: 25000
faild: 2 | QPS: 12000
faild: 908(all: 37w) | | 连接数:15000 | QPS: 12300
faild: 10w(all: 37w) | QPS: 8700
faild: 0(all: 26w) | | 连接数:20000 | QPS: 37000(没意义了)
faild: 97w(all: 100w) | QPS: 37000(没意义了)
faild: 978247(all: 100w) | **参考 && 致谢 :** https://github.com/chenshuo/muduo https://blog.csdn.net/T_Solotov/article/details/124044175 https://zhuanlan.zhihu.com/p/636581210 https://github.com/Shangyizhou/A-Tiny-Network-Library https://www.cnblogs.com/tuilk/p/16793625.html