websockets / ws

Simple to use, blazing fast and thoroughly tested WebSocket client and server for Node.js
MIT License
21.76k stars 2.42k forks source link

Still the fastest RFC-6455 WebSocket implementation? #709

Closed binarykitchen closed 8 years ago

binarykitchen commented 8 years ago

See https://github.com/alexhultman/uWebSockets/issues/56

NoelAbrahams commented 8 years ago

According to uWebSockets they seem signficantly faster and more scalable (in terms of memory consumption):

Memory scaling: µWS is 52x as lightweight Connection performance: µWS is 21x as performant Short message throughput: µWS is 23x as performant Huge message throughput: µWS is 2x as performant

They have also provided details on _why_ they are faster.

chintan39 commented 8 years ago

Please read the disclaimer below the statistics "These results were achieved with the native C++ server, not the Node.js addon. Expect worse performance and scalability when using Node.js."

So "Yes" probably still the fastest and stable WebSocket implementation

ghost commented 8 years ago

@chintan39 The C++ (native) server is about 4x faster than the Node.js addon which leaves about 10x remaining difference between ws and uws. 10x is also known as 1000% which is also known as "one thousand percent" which in my book means "no, ws is by far not the fastest". But that's just me...

ghost commented 8 years ago

@NoelAbrahams These memory scaling numbers are a little bit misleading as they only measure user space memory, in reality when taking the fix kernel space memory usage into account the difference between ws and uws in memory usage would be something like 6-10x I guess.

ghost commented 8 years ago

Btw, it doesn't really matter. The developers are never going to acknowledge this in any way. The word "performance" has been bashed so hard lately it has turned into a buzzword which everyone is now entitled to use. Socket.IO claim to be the fastest pub/sub when this in fact is not true at all, yet nobody cares to even bother checking this up. As a user you would need to actually check things up and not just rely on some ancient blog post filled with bullshit claims.

LordMajestros commented 8 years ago

I don't think this is an issue. @alexhultman you are a very good programmer but bashing everyone on the head with the superiority of uwebsockets is not the best way to go about things. You attacked ws and recently attacked libwebsockets too. It's not really necessary. More people are flocking to uwebsockets give it time. Great projects can die because people simply don't like the people behind them. You'll end up making enemies and that will hinder your vision for uwebsockets. That said, great work. I'm substituting uwebsockets for ws(I contributed to the code base) on one of my servers and it's working out really well so far.

ghost commented 8 years ago

I just filled in some details because of misinformation.

3rd-Eden commented 8 years ago

I'm going to close this topic, bashing each other libraries solves nothing in an Open Source environment. We're all working on a common goal here and that is to provide software that we've written or contributed to for others to consume freely. I agree with @LordMajestros statement and would like to close this topic with a quote from Dan Abramov:

Every time you diss a competing library, the invisible cost is all the future collaboration that doesn’t happen.

🎤