Crystal 0.9.1 with Kemal
require "kemal"
ws "/" do |socket|
socket.on_message do |message|
end
end
Node.js v4.2.1 with ws
var WebSocketServer = require('ws').Server
, wss = new WebSocketServer({ port: 3000 });
wss.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
});
});
Thor is used to run the benchmark.
thor -A 10000 http://localhost:3000
Platform | CPU Usage | Memory Usage |
---|---|---|
Crystal (Kemal) | 1.85 | 11.2 MB |
Node.js (ws) | 38.95 | 906.3 MB |
This benchmark was performed on a 2013 Late Macbook Pro with 2Ghz i7 and 8G ram.
P.S: Less is better
!!!