| Implementation | Connection Time (mean) | Latency (mean) | Messages | Timeouts |
|---|---|---|---|---|
| Erlang | 00.865ms | 00.017ms | 2849294 | 0 |
| Java (Webbit) | 00.567ms | 00.835ms | 1028390 | 157 |
| Go | 00.284ms | 18.503ms | 2398180 | 225 |
| Node.js | 00.768ms | 42.580ms | 1170847 | 4299 |
| Python (ws4py) | 01.561ms | 34.889ms | 1052996 | 5208 |
Both the Python gevent/ws4py implementation and the Node.js websocket implementation failed hard with around half of the connections hitting the 2 second TCP connection timeout.
I expected Go to kick Erlang's ass in the performance department but the message latency was much higher than Erlang's latency and we had 225 unhappy customers. Go only reached C9.775k; close but no cigar.
I did not know what to expect with the Java Webbit implementation. I expected it to perform somewhere close to the Go implementation. The Webbit implementation did do much better than the Go implementation but it still had 157 connection timeouts which is unacceptable.
I was very surprised that node.js fell down after 5001 connections and that gevent fell down at 4792 connections. Both platforms were specifically built to for the C10k problem and both platforms could barely handle C5k.
_______________________________________________
erlang-questions mailing list
erlang-q...@erlang.org
http://erlang.org/mailman/listinfo/erlang-questions