Benchmark Web Framework: Go vs Javascript

Karena penasaran dengan performa beberapa web framework dari Nodejs dan Golang, ditambah adanya keinginan untuk belajar pemrograman backend Golang, maka saya buatlah benchmarknya.
Web framework yang dites:
- Nodejs: ExpressJs, Fastify, dan Hyper-Express
- Golang: Echo, Fiber, dan Native (net/http).
- Bunjs: Honojs
- Deno: Honojs
Metode Benchmark #
Terdapat dua metode untuk test, yakni:
- TEST-GET: 10000 request GET dibagi 100 concurrent users, response berupa JSON berisi status: “OK”.
- TEST-POST: 10000 request POST dibagi 100 concurrent users, request body berupa JSON dengan ukuran file 52KB, response berupa JSON berisi data yang dikirim pada request body.
Metode penilaian: Setiap tes dilakukan 3 kali pada masing-masing web framework, diambil data dengan request per detik terbesar.
Tools:
- Docker desktop
- Cassowary http load testing tool
- Laptop keluaran tahun 2015 core i5 - vcpu 4 - ram 16GB
Urutan tes :
- Node Express
- Node Fastify
- Node Hyper-Express
- Go Echo
- Go Fiber
- Go Native (net/http)
- Deno Honojs
- Bun Honojs
Hasil #
TEST-GET:
- Node-ExpressJs: 1126 req/s (Rank 8)
- Node-Fastify: 3258 req/s (Rank 7)
- Node-Hyper-Express: 5458 req/s (Rank 5)
- Go-Echo: 5757 req/s (Rank 3)
- Go-Fiber: 6600 req/s (Rank 1)
- Go-Native: 5650 req/s (Rank 4)
- Deno-Hono: 3924 req/s (Rank 6)
- Bun-Hono: 5819 req/s (Rank 2)
TEST-POST:
- Node-ExpressJs: 252 req/s (Rank 8)
- Node-Fastify: 289 req/s (Rank 4)
- Node-Hyper-Express: 346 req/s (Rank 1)
- Go-Echo: 270 req/s (Rank 6)
- Go-Fiber: 314 req/s (Rank 3)
- Go-Native: 265 req/s (Rank 7)
- Deno-Hono: 285 req/s (Rank 5)
- Bun-Hono: 317 req/s (Rank 2)
Berdasarkan hasil di atas, dapat diketahui bahwa rata-rata performa web framework golang lebih baik dan lebih stabil daripada web framework Nodejs. Namun dengan adanya hasil yang cukup baik pada Node Hyper-Express dan Bunjs, hal ini memberi tahu bahwa Javascript masih memiliki kemampuan untuk bersaing dengan Golang.
Jika rekan-rekan ingin mencoba untuk mem-benchmark sendiri, silahkan clone dan jalankan repository berikut: https://github.com/masfahru/benchmark-web-framework