HttpArena
Frameworks

fnet-ws

Experimental · Go · engine: fnet · standard configuration

fnet v1.0.0's websocket package on fhttp: the upgrade is answered on fnet's epoll event loops, then frames are parsed in the connection's own task on fnet's executor, so an unfragmented message is echoed straight from the read buffer it arrived in, with no goroutine per connection; replies written while a batch of frames is processed are coalesced into one write. fnet's ReusePort option is on: on Linux every sub-reactor listens on :8080 with a socket of its own, sharing the port through SO_REUSEPORT so the kernel spreads the connections over the loops.

Achievements

🥇 3 Gold · 🥈 2 Silver. Top three of a field, taken in this entry's own league: the family composite, the same composite among entries written in the same language, and each test profile it is scored on. Every field is the one the badges publish, so a medal and a badge always say the same thing. How medals are awarded.

MedalAwardFieldRank
🥇 GoldFamily compositeComposite · WebSocket1 of 6
🥇 GoldWithin its languageGo · WebSocket1 of 3
🥇 GoldTest profileWebSocket · Echo1 of 6
🥈 SilverTest profileWebSocket · Echo Pipelined2 of 6
🥈 SilverTest profileWebSocket · Echo Short-lived2 of 6

Composite rank

Each profile of a family is worth 100 to the entry that leads it, and the composite is the sum over the family, less 2.5% for each of routing, middleware, request and response the entry does not do for you - its completeness factor, which the WebSocket and gRPC families do not carry. The field is this entry's own league: engines and reverse proxies are scored apart from frameworks. How it works.

FamilyRankComposite
WebSocket1 of 62928

Every result

Alpha Round, 8 runs. Requests per second is the best of three; latency, CPU and memory come from that run.

CategoryProfileConnsReq/secAvgp99CPUMemory
WebSocketEcho5124,048,155125us345us6276.1%51MiB
WebSocketEcho4,0964,010,4331.02ms10.80ms6514.8%73MiB
WebSocketEcho16,3843,724,0214.36ms27.90ms6462.9%164MiB
WebSocketEcho Pipelined51258,564,982139us337us6305.4%50MiB
WebSocketEcho Pipelined4,09657,613,0011.12ms11.10ms6225.2%67MiB
WebSocketEcho Pipelined16,38454,231,3284.80ms28.10ms6497.2%157MiB
WebSocketEcho Short-lived5121,987,081146us474us5518.1%178MiB
WebSocketEcho Short-lived4,0962,349,4251.14ms6.92ms6068.0%260MiB

Compared with

The Go entries around fnet-ws on the WebSocket composite, and the one leading them. The last column shows every profile side by side.

EntryCompositevs fnet-ws
fib2815-4%head to head
uio-ws2143-27%head to head

Compare fnet-ws with any Go entry · Compare fnet-ws with any entry, in any language · Every Go entry, ranked

Results updated · How the benchmark is run · The machine · Add or fix an entry