uio-ws
Experimental · Go · engine: uio · standard configuration
uws WebSocket echo on uio: the RFC 6455 handshake and frame parser run in the connection's own I/O task on uio's edge-triggered event loops, one per CPU, so each message is parsed from the buffer its task read into and echoed from that task with no goroutine per connection; a read round's replies leave coalesced in one sendmsg, and a send the socket refuses is finished by the next write turn without pausing the read. Default configuration otherwise.
Achievements
🥉 2 Bronze. 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.
| Medal | Award | Field | Rank |
|---|---|---|---|
| 🥉 Bronze | Family composite | Composite · WebSocket | 3 of 5 |
| 🥉 Bronze | Test profile | WebSocket · Echo Pipelined | 3 of 5 |
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.
| Family | Rank | Composite |
|---|---|---|
| WebSocket | 3 of 5 | 2283 |
Every result
Alpha Round, 8 runs. Requests per second is the best of three; latency, CPU and memory come from that run.
| Category | Profile | Conns | Req/sec | Avg | p99 | CPU | Memory |
|---|---|---|---|---|---|---|---|
| WebSocket | Echo | 512 | 3,638,507 | 140us | 292us | 6375.8% | 49MiB |
| WebSocket | Echo | 4,096 | 3,452,469 | 1.18ms | 1.98ms | 6268.6% | 81MiB |
| WebSocket | Echo | 16,384 | 3,288,042 | 4.84ms | 6.36ms | 6036.8% | 169MiB |
| WebSocket | Echo Pipelined | 512 | 49,165,507 | 165us | 299us | 6455.1% | 49MiB |
| WebSocket | Echo Pipelined | 4,096 | 46,504,867 | 1.40ms | 2.61ms | 6207.1% | 81MiB |
| WebSocket | Echo Pipelined | 16,384 | 44,743,779 | 5.70ms | 7.82ms | 5942.6% | 169MiB |
| WebSocket | Echo Short-lived | 512 | 1,028,217 | 172us | 1.13ms | 3417.3% | 66MiB |
| WebSocket | Echo Short-lived | 4,096 | 1,022,019 | 178us | 1.14ms | 3293.4% | 64MiB |
Compared with
The Go entries around uio-ws on the WebSocket composite, and the one leading them. The last column shows every profile side by side.
| Entry | Composite | vs uio-ws | |
|---|---|---|---|
| fib | 2963 | +30% | head to head |
| fiber | 1658 | -27% | head to head |
| go-websocket | 257 | -89% | head to head |
Compare uio-ws with any Go entry · Compare uio-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