等了几个月终于有动静了:
https://github.com/TechEmpower/FrameworkBenchmarks/issues/9916
顺便给 gnet 也提了个 issue 建议移除之前天梯跑第一的误导性测试结果: https://github.com/panjf2000/gnet/issues/733
原文:
建议移除 FrameworkBenchmarks 测试结果,避免造成误导
gnet 性能超强的观点已经在小白中持续了好些年,但这是误导性的,FrameworkBenchmarks 官方已经对非完整 HTTP 协议支持的框架做了” Stripped/剥离“的分类:
TechEmpower/FrameworkBenchmarks#9916
即使是 TCP 测试,gnet 也不一定是最强的,而是第一梯队的框架性能其实差不多的。连接数、io 协程数等不同参数,跑多轮,nbio 比 gnet 强的次数还多一些,当然这可能是个人环境差异,用户应该以自家实际测试结果为准:
lesismal/go-net-benchmark#1
nbio 支持 TLS/HTTP/Websocket ,但是从未在自称性能比其他框架强,因为对于普通连接数,涉及协程、调度亲和性、buffer 复用率、变量逃逸等各种不如标准库,所以性能跑不过标准库。Poller 框架的优势是海量连接数场景协程、变量、内存可控,不至于 OOM 和明显的 STW ,内存占用大幅降低(百万 websocket 1k payload echo test 可以控制在 1G 内存)。
所以对于很多普通连接数的用户,我都是鼓励使用标准库的。
gnet 起步早、积累了很多用户,希望能实事求是,避免误导。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.