Hacker News new | ask | show | jobs
by lpinca 3543 days ago
Congrats for this achievement. For anyone using this in Node.js I strongly suggest to run your own benchmarks as uws is no way 47x 18x 33x and 2x times faster/more lightweight than ws. Also check how the improvements are obtained.
3 comments

Call me when you can get 1 million concurrent connections using 1.3 GB of user space memory with ws.

Hint: at 500k ws consumes all memory in my computer and the GC stalls are constant. My system start to freeze and my mouse cursor is no longer responding.

I can have 1 million connections with uws at the same time I'm watching cat clips on youtube, listening to spotify and having my complete IDE up and running.

For 100k connections your own benchmarks showed a different story. Now I didn't try with 1 million and I guess it gets worse so I trust you but I can try with removing the upgrade request, the event emitter, etc from ws to start at least with a fair comparison.
If you don't like it, don't use it.
It's your idea of transparency which I don't like, not your project.
A million connections into the computer that you work on? Are these bot net connections, or do use your machine as your server?
I test the user space memory scalability by connecting 1 million localhost connections on the same machine.

Btw, 1.3 GB is for the Node.js addon - the native server does 1 million connections using less than 300 mb of user space memory.

We moved to using uWS for deepstream.io 1.0 release and had great feedback from the community. To literally quote a user in production: 'After we upgraded to deepstream 1.0 we are seeing that the resource consumption is about 50% of what is was before so we still have growing space on our servers'. This was for the 0.7 release so I'm excited to see if 0.10 reduces this even further.
Yes, for 100k connection, using Alex's own benchmarks I saw that uws is up to 2x faster/more lightweight than ws except for the short message throughput where uws really shines and is up to 10x faster. It is a lot, don't get me wrong but the numbers on the README are obtained comparing the C++ server with ws which is totally wrong imho.
What do you mean when you say ws? Isn't uws just a library for ws?
uws is a reimplementation of the ws interface, using fewer resources and providing better throughput.
WebSockets is the protocol, ws is a lib implementing it.
`ws` is another popular WebSocket implementation for Node.js