Usually the reverse is true. This really should be retitled to underscore that this is a working example of Node.js outperforming Golang and Rust by a long shot.
> It is possible to outperform, in some regards, Golang’s Gorilla WebSockets on an SSL vs. non-SSL basis. That is, your JS code on SSL can message faster than Golang can without SSL (in some regards). I think that’s pretty cool.
Really impressive, sounds like a highly performance optimized api compatibile alternative c++ backend for node.
One of the actually positive things that came out of the cryptocurrency ecosystem is the amount of effort put into libraries like these. I think it's great.
> Highly optimized C++ or C library with javascript wrapper beats golang hurr durrr
At what point is it C++ beats golang vs javascript beats golang? IMO these kinds of benchmarks are disingenuous at best.
The benefit of go here is that i don't have to write c++ or c if i need to submit a bug fix, and I don't have layers of abstraction around libraries written in a different language. The last thing I want to is to try and debug the underlying c or c++ libraries when things go wrong. At least with go, pprof and other go tools make debugging low level things straight forward
There are a few other notable things about Go:
1. Compiler and toolchain is all written in Go. Compare this to g++ or JRE/JDK has a lot of code in other languages which can be problematic when you need to audit the code or fix some low level bug.
2. Language spec is shorter than any other language.
The library may be fast but is useless if it does not provide the client IP. Also, there's no info about how to broadcast in a performant way..... imagine you need to send the very same json to many clients.... it does perform good? it does notice we talking about the same data? or will do useless process over the same data again and again for each client?
13 comments
[ 2.8 ms ] story [ 43.7 ms ] threadReally impressive, sounds like a highly performance optimized api compatibile alternative c++ backend for node.
"uWebSockets.js: significantly faster websocket performance for node.js"
This isn't the original title, but less clickbaity.
At what point is it C++ beats golang vs javascript beats golang? IMO these kinds of benchmarks are disingenuous at best.
The benefit of go here is that i don't have to write c++ or c if i need to submit a bug fix, and I don't have layers of abstraction around libraries written in a different language. The last thing I want to is to try and debug the underlying c or c++ libraries when things go wrong. At least with go, pprof and other go tools make debugging low level things straight forward
go can handle 1 million of concurrent websocket connections anyway, so what is the point?