Benchmarks

The latest benchmark results are available at the main repo.

NOTE: We run Action Cable with eight Puma workers. Using lower number of processes results in a much higher latency during broadcasting as well as connection timeout errors.

Broadcasting RTT

Broadcasting round-trip time benchmark (based on Hashrocket's bench) measures how much time does it take for the server to re-transmit the message to all the connected clients–the less the time, the better the real-time-ness of the server.

The results of this benchmark could be seen below.

RTT

Memory usage

Memory usage of AnyCable is significantly lower than of Action Cable.

That's achieved by moving memory-intensive operations into (storing connection states and subscriptions maps, serializing data into a standalone WebSocket server.

Memory usage

CPU usage

Below you can see the snapshot of CPU usage during the RTT benchmark.

AnyCable CPU
Action Cable CPU