2 Star 3 Fork 2

alchemystar / hero

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
用C语言写的dbproxy
Road_Map:
已完成:
内存池
byte_buffer
BIO模式
Reactor模式
Epoll分包
MySQL前端协议
MySQL后端协议
todo: 
事务支持


追求极致的性能
用作对比的两个server的代码IO模型
hero(c):epoll 水平触发
proxy(java):java nio(内部也是epoll 水平触发)

benchMark:
服务器机器
4核8G
CPU主屏2399.996MHZ
cache size:4096KB

压测机器:
16核64G,jmeter

同样配置下,压测同一个简单的sql
hero(c):3.6Wtps/s
proxy(java):3.6Wtps/s
tps基本没有差别,因为瓶颈是在网络上

CPU消耗:
hero(c):10% cpu
proxy(java):15% cpu

内存消耗:
hero(c):0.2% * 8G
proxy(java):48.3% * 8G 

结论:
对于IO瓶颈的情况,用java和C分别处理简单的组帧/解帧逻辑,C语言带来的微小收益并不能让tps有显著改善。

空文件

简介

用C语言实现的dbproxy 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/alchemystar/hero.git
git@gitee.com:alchemystar/hero.git
alchemystar
hero
hero
master

搜索帮助

14c37bed 8189591 565d56ea 8189591