Hello,
In this article, I will create a standard web server in related programming languages, perform a load test and share the results with you.
First of all, I may have cheated a bit (for GO using fasthttp) but I tried to use the most popular and common libraries of each language.
Go https://github.com/valyala/fasthttp
C# ( .NET 8.0.303 )
Node.JS (Fastify and Express) — I tried with cluster. Otherwise, we won’t even be able to enter the race :(
I have used Node.JS (with Fastify & Cluster) in many projects before and I can say that it is quite performant, but I was curious about the performance of other languages in a standard application and I wanted to make a comparison.
Before starting the test, I must say that although Fastify is quite fast, it is really slow compared to other languages without using cluster (worker). Express, on the other hand, performs really badly.
I chose to use k6 as a test tool. The scenario works as follows: 100 virtual users send requests at the same time and when one request is finished, they send the next request, so the number of requests processed per second, average response time, maximum latency values are calculated within 30 seconds. I shared all the results and test codes on https://github.com/batuhanaydin/csharp-vs-golang-vs-node.js-http
K6 Test Scenario:
import http from 'k6/http';
import { check } from 'k6';
export const options = {
vus: 100,
duration: '30s',
};
export default function () {
const res = http.get('http://127.0.0.1:8082');
check(res, {
'status is 200': (r) => r.status === 200,
});
}
Now let’s move on to the performance / load test results, 100 virtual users made requests for 30 seconds and we can say that GO is by far ahead with a good difference;
- Go: 4,257,294 requests
- C# (.NET): 3,892,355 requests
- Fastify Worker (Node.js — 8 Worker): 3,795,489 requests
- Fastify (Node.js): 959,221 requests
- Node.js (Express): 269,800 requests
Honestly, I have to say that Fastify (even with the worker module) is a highly optimized library and it is really surprising that it performs very close to C#.
Requests per Second and Average Response Time

Conclusion
The Go programming language can handle 9.33% more requests than C#, of course, real applications are not just a “Hello World” response, but a small database connection will affect the results. At the moment we have only basically tested a standard web server.
As for Fastify, we can say that it is 3.5 times faster than Express with a single worker, which is really as fast as it talks about itself. With the cluster module (8 workers) it performs close to C# and that’s pretty amazing!
As for my comments about Express, I don’t even know why it is in this test.
In conclusion, no matter which language we use, we should research and be open to learning new technologies.
Winner: Go