HttpArena
Frameworks

vanilla-ws

Engine · V · engine: epoll

WebSocket echo on vanilla's conn-mode seam: one epoll engine, two protocols on the same connection. The HTTP handler validates the RFC 6455 upgrade as a pure function, appends the 101 and hands the connection over (core.queue_takeover); from then on every readable burst is fed to a ConnHandler instead of the HTTP/1.1 state machine. The websocket module is a pure RFC 6455 codec (accept-key, frame-head parsing, in-place unmasking, unmasked server-frame writers). Read buffering/compaction, batched flushes and EPOLLOUT backpressure are the engine's own, so a pipelined burst of frames is drained in one handler call and coalesced into one write. Multi-threaded, SO_REUSEPORT, lock-free, -gc none.

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. The field is this entry's own league: engines and reverse proxies are scored apart from frameworks. How it works.

FamilyRankComposite
WebSocket5 of 9188

Every result

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

CategoryProfileConnsReq/secAvgp99CPUMemory
WebSocketEcho5123,911,720130us585us6402.2%58MiB
WebSocketEcho4,0964,378,205931us6.50ms6432.2%147MiB
WebSocketEcho16,3844,095,4043.92ms10.90ms6424.7%455MiB
WebSocketEcho Pipelined51259,233,593137us711us6447.9%57MiB
WebSocketEcho Pipelined4,09665,026,006998us6.56ms6271.7%138MiB
WebSocketEcho Pipelined16,38461,723,4184.18ms11.20ms6169.0%465MiB

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