How Raygun increased throughput 20x with .NET Core over Node.js
21–30 of 61 posts
Re: How Raygun increased throughput 20x with .NET Core over Node.js
#22Earlier quoted context omitted.
Some have already optimised the heck out of their data retrieval and writes.
> Some have already optimised the heck out of their data retrieval and writes Then they have likely not very much to gain from framework speedup either. The fact that raygun could introduce a "asynchronously hand off to our queuing service" says quite clearly that "already optimised data retrieval and writes" is not the case that we are talking about.
But assuming that dropping something on to a queue is incredibly fast. Switching how you serve your http requests can increase performance by some multiples because it would be the largest constant in time taken assuming a very fast queue drop.
Although I agree, if your at that point your probably serving all your requests fine anyway.
Re: How Raygun increased throughput 20x with .NET Core over Node.js
#23The fact that they were only getting 1k reqs/sec with Node gives me concern. It clearly shows something went wrong there very early on at a very fundamental level. By no means is Node the end-all be-all for performance by any measure, but you should definitely be getting much much higher throughput than 1k reqs/sec. Simply booting up a single core http server should net you around 4-5k requests per second. Spin up an…
> The fact that they were only getting 1k reqs/sec with Node gives me concern. It clearly shows something went wrong there very early on at a very fundamental level. Because the program is performing CPU compute for each request. Node is single threaded. It's a shame that the Node project killed off the multithreaded web workers pull request. It sorely needs that functionality. Pools of node processes are a poor subs…
Re: How Raygun increased throughput 20x with .NET Core over Node.js
#24Earlier quoted context omitted.
"Your web server is not the bottleneck." - Highly depends on your setup. But removing any 3rd party libraries, and external requests. Generally .NET core is faster.
Actually 3rd party libraries and application code is where .NET is likely to be faster unless node lib is wrapping a C library - .NET can easily beat JS an order of magnitude simply by having control of memory layouts and high performance/specialized data structures. Meanwhile JS has crap structures (doesn't even have primitive arrays) and everything is it's dynamic object where you pray the JIT eventually figures ou…
Re: How Raygun increased throughput 20x with .NET Core over Node.js
#25If you really wanted throughput and large numbers of simultaneous connections, you'd be looking at Erlang, anyway.
Re: How Raygun increased throughput 20x with .NET Core over Node.js
#26This, and the AgeOfAscent piece it links to, both read like PR pieces commissioned by Microsoft. Both are absent of actual information to really determine what exactly they were testing, or what this means to anyone else's problem space. Because, of course, when you get to the fun of benchmarks there's always a faster options. With .NET Core offering them 20,000 requests per second (on a C3.large), that is a terribly…
Re: How Raygun increased throughput 20x with .NET Core over Node.js
#27The fact that they were only getting 1k reqs/sec with Node gives me concern. It clearly shows something went wrong there very early on at a very fundamental level. By no means is Node the end-all be-all for performance by any measure, but you should definitely be getting much much higher throughput than 1k reqs/sec. Simply booting up a single core http server should net you around 4-5k requests per second. Spin up an…
> The fact that they were only getting 1k reqs/sec with Node gives me concern. It clearly shows something went wrong there very early on at a very fundamental level. Because the program is performing CPU compute for each request. Node is single threaded. It's a shame that the Node project killed off the multithreaded web workers pull request. It sorely needs that functionality. Pools of node processes are a poor subs…
Re: How Raygun increased throughput 20x with .NET Core over Node.js
#28Re: How Raygun increased throughput 20x with .NET Core over Node.js
#29I recently found Node much faster then .NET Core for a very specific scenario:
Elasticsearch - Node / ASP.NET Core (Kestrel) - NGINX - Client
where every connection must be TLS. So, Node / ASP.NET Core have to decrypt traffic from Elasticsearch and encrypt to NGINX. For a minimal workload the whole trip took 50 ms with .NET Core and 20 ms with Node. Obviously there's something wrong with the .NET setup - maybe some setting with Kestrel and TLS.
Anyway, that's my anecdote. And I wouldn't dare writing a block post how node is 2,5 times faster than .NET.
Re: How Raygun increased throughput 20x with .NET Core over Node.js
#30Earlier quoted context omitted.
Actually 3rd party libraries and application code is where .NET is likely to be faster unless node lib is wrapping a C library - .NET can easily beat JS an order of magnitude simply by having control of memory layouts and high performance/specialized data structures. Meanwhile JS has crap structures (doesn't even have primitive arrays) and everything is it's dynamic object where you pray the JIT eventually figures ou…
Just to nitpick a bit, JS does have primitive arrays using TypedArray.