Round #1
Language | Clients | RAM (MB) | RAM / Client (KB) | LOC | Library |
C++ | 33,000 | 600 | 18.62 | 140 | https://github.com/zaphoyd/websocketpp |
Clojure | 27,000 | 1,500 | 56.89 | 50 | http://www.http-kit.org/ |
Elixir | 24,000 | 1,900 | 81.07 | 20 | http://www.phoenixframework.org/ |
Go | 24,000 | 800 | 34.13 | 100 | Built-in golang.org/x/net/websocket |
NodeJS | 13,000 | 300 | 23.63 | 31 | https://github.com/websockets/ws |
JRuby | 1,100 | 650 | 605.09 | 20 | http://rubyonrails.org/ |
Ruby | 500 | 150 | 307.20 | 20 | http://rubyonrails.org/ |
Round #2
Language | Version | Thread | Clients | Clients (without Payload) |
Javascript / Node / uws | 6.6.0 | 26,000 | ||
Haskell - no chan | 1.2 | 25,000 | 37,000 | |
C++ / uWebSockets / RapidJSON | 5.4.0 | 1 | 24,000 | 35,000 |
Go / Websocket | 1.7 | 22,000 | 39,000 | |
C++ / Crow / RapidJSON | 5.4.0 | 1 | 20,000 | |
Go / Gorilla | 1.7 | 20,000 | ||
Java / Netty | 1.8.0_101 | 20,000 | ||
Rust - ws | 1.11.0 | 20,000 | ||
Elixir / Plug | 1.3.2 | 19,000 | ||
Java / Undertow | 1.8.0_101 | 19,000 | ||
NodeJS / Faye - clustered | 6.6.0 | 19,000 | ||
Rust - scopedpool-ws | 1.11.0 | 19,000 | ||
Clojure / Java | 1.8.0_101 | 18,000 | ||
C++ / WebsocketPP / jsoncpp | 5.4.0 | 8 | 17,000 | |
JRuby / Eventmachine | 9.1.2.0 | 17,000 | ||
Rust - threadpool-ws | 1.11.0 | 17,000 | ||
Elixir / Phoenix | 1.3.2 | 15,000 | ||
C++ / Crow / RapidJSON | 5.4.0 | 8 | 14,000 | 42,000 |
Javascript / Node / ws | 6.6.0 | 14,000 | ||
Javascript / Node / ws - clustered | 6.6.0 | 14,000 | ||
C++ / WebsocketPP / jsoncpp | 5.4.0 | 1 | 13,000 | |
Haskell | 1.2 | 13,000 | ||
NodeJS / Faye | 6.6.0 | 13,000 | ||
Ruby / Eventmachine | 2.3.1p112 | 13,000 | ||
Javascript / Node / uws - clustered | 6.6.0 | 12,000 | ||
JRuby / Rails | 9.1.2.0 | 1,000 | ||
Ruby / Rails | 2.3.1p112 | 500 |
You can see the raw result here.