等了几个月终于有动静了:
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 起步早、积累了很多用户,希望能实事求是,避免误导。