文件名称:gev::rocket:Gev是基于Reactor模式的轻量级,快速,无阻塞的TCP网络库。 支持自定义协议,可快速轻松地构建高性能服务器
文件大小:245KB
文件格式:ZIP
更新时间:2024-02-24 08:06:35
go golang reactor event-driven kqueue
吉夫 | 英语 gev是基于Reactor模式的轻量级,快速,无阻塞的TCP网络库。 支持自定义协议,以快速轻松地构建高性能服务器。 产品特点 基于epoll和kqueue的高性能事件循环 支持多核和多线程 由环形缓冲区实现的读写缓冲区的动态扩展 异步读写 SO_REUSEPORT端口重用支持 自动清理空闲连接 支持WebSocket / Protobuf 支持计划任务,延迟任务 支持自定义协议 网络模型 gev仅使用一些goroutine,其中一个侦听连接,而另一个(工作协程)处理已连接客户端的读取和写入事件。 工作协程的数量是可配置的,默认情况下这是主机CPU的核心数量。 性能测试 :chart_increasing: 测试图测试环境:Ubuntu18.04 | 4个虚拟CPU | 4.0 GiB 吞吐量测试 限制GOMAXPROCS = 1(单线程),1个工作程序 限制GOMAXPROCS = 4,4个工作程序 其他测试 速度测试与类似库的简单性能相比,压力测量方法与evio项目相同。 网 逃避 埃维奥 净(StdLib) 限制GOMAXPROCS = 1,1个工作程
【文件预览】:
gev-master
----.gitignore(199B)
----go.mod(637B)
----server_conn_test.go(2KB)
----connection()
--------connection.go(6KB)
--------context_test.go(792B)
--------context.go(606B)
--------protocol.go(654B)
----server.go(3KB)
----log()
--------log.go(3KB)
----listener()
--------listener.go(2KB)
----server_test.go(5KB)
----poller()
--------poller.go(350B)
--------poller_test.go(477B)
--------epoll.go(4KB)
--------kqueue.go(4KB)
----LICENSE(1KB)
----go.sum(8KB)
----.github()
--------workflows()
----README-ZH.md(17KB)
----everyscheduler.go(173B)
----README.md(17KB)
----example()
--------pushmessage()
--------websocket()
--------idleconnection()
--------echo()
--------maxconnection()
--------protobuf()
--------protocol()
----benchmarks()
--------client()
--------.gitignore(11B)
--------out()
--------bench-echo.sh(1KB)
--------gnet-echo-server()
--------eviop-echo-server()
--------net-echo-server()
--------bench-pingpong.sh(1KB)
--------evio-echo-server()
----options.go(1KB)
----plugins()
--------websocket()
--------protobuf()
----eventloop()
--------eventloop_test.go(382B)
--------eventloop.go(3KB)