3 Star 5 Fork 3

laozi2/concurrent-tcp-client

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
README 1.34 KB
一键复制 编辑 原始数据 按行查看 历史
laozi2 提交于 2016-04-08 17:12 +08:00 . add jemalloc
make large concurrent requests on tcp socket, can be used as pressure test
install:
不使用 jemalloc库
gcc -g -o test common.c config.c flog.c ngx_rbtree.c ngx_event_timer.c zmalloc.c test.c
使用 jemalloc库
1. 安装jemalloc库,以redis编译jemalloc为例
1.1 wget http://www.canonware.com/download/jemalloc/jemalloc-3.6.0.tar.bz2 下载到当前目录
1.2 tar xf jemalloc-3.6.0.tar.bz2 ; cd jemalloc
1.3 ./configure --with-jemalloc-prefix=je_ --enable-cc-silence CFLAGS="-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops " LDFLAGS=""
1.4 make CFLAGS="-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops " LDFLAGS="" lib/libjemalloc.a
2. gcc -DUSE_JEMALLOC -I./jemalloc/include/ -g -o test common.c config.c flog.c ngx_rbtree.c ngx_event_timer.c zmalloc.c test.c jemalloc/lib/libjemalloc.a -ldl -lpthread -lrt
高并发客户端程序
采用epoll异步非阻塞,单线程实现高并发,参照nginx事件机制,加入非阻塞定时器
注意:
1. 为了读写方便,只处理 4字节头+body 的请求响应协议,复杂协议需要根据特定需求实现。
2. 请求的测试数据预先生成并载入内存,以提高效率。
3. 不做逻辑验证,既不处理返回值内容, 更不能做单元测试。
4. 该程序功能简单高效,稍做修改可直接使用,也可做代码参考,二次开发。
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/laozi2/concurrent-tcp-client.git
git@gitee.com:laozi2/concurrent-tcp-client.git
laozi2
concurrent-tcp-client
concurrent-tcp-client
master

搜索帮助