DEV Community

Discussion on: Concurrency in modern programming languages: Rust vs Go vs Java vs Node.js vs Deno vs .NET 6

Collapse
 
brunoborges profile image
Bruno Borges

Never run client/server benchmarks on the same computer.

The process to generate loads will inevitably impact the process to serve the requests.

Best infra for benchmarking is two independent computer hardware. Not even VMs, as they also compete for CPU resources.

Collapse
 
deepu105 profile image
Deepu K Sasidharan

Honestly I didn't expect people to take this so seriously or even for the post to do well. I was just wrapping up a series that was taking a lot of effort and not much interest in terms of views. But man this blowed up. Now I think I have to rework this to something better 😂

Thread Thread
 
brunoborges profile image
Bruno Borges

That's what happens when you publish benchmarks! 😂

Thread Thread
 
deepu105 profile image
Deepu K Sasidharan

lesson learned :P

Collapse
 
pkolaczk profile image
Piotr Kołaczkowski

Depends on how efficient the load generation tool is vs how much work on the server side is required to handle the request. You can also pin those two processes to different CPU core sets. This way one computer is enough to get meaningful results. Obviously if your don't know what you're doing, it is better to use two separate machines.

Thread Thread
 
deepu105 profile image
Deepu K Sasidharan

Ya in this case the server is quite simple and doesn't need too much resource that might explain why I got similar results from both. I would be interested in learning more about pinning process to cores. Do you have any resource you can recommend?

Thread Thread
 
pkolaczk profile image
Piotr Kołaczkowski

man taskset