๐Ÿ“ Blog
๐Ÿš€ Benchmark Seru: Node.js vs Deno vs Bun

๐Ÿš€ Benchmark Seru: Node.js vs Deno vs Bun โ€“ Siapa yang Paling Ngebut?

Published on March 24, 2025 ยท 8 min read

Pada postingan sebelumnya, kita sudah bahas kelebihan, kekurangan, dan kapan sebaiknya menggunakan Node.js, Deno, atau Bun. ๐Ÿ”

Nah, kali ini kita masuk ke tahap seru: benchmark sederhana untuk mengukur performa masing-masing runtime ๐Ÿ’ปโšก

Kita akan coba install dan jalankan Express, lalu lihat performanya masing-masing. ๐Ÿ”ฅ Selain itu, saya tambahkan juga hasil benchmark dari website bun sebagai pembanding. ๐Ÿ“Š


โš™๏ธ Parameter Benchmark

Untuk benchmark sendiri, ada beberapa parameter. Dibawah ini parameter yang biasa dipakai untuk menentukan benchmark aplikasi.

  • ๐Ÿš€ Startup Time
  • โฑ๏ธ Execution Time / Throughput
  • ๐Ÿง  Memory Usage
  • ๐Ÿ’ป CPU Usage
  • ๐Ÿ“‚ File I/O Performance
  • ๐ŸŒ HTTP Server Performance
  • ๐Ÿ“ฆ Package Install Time
  • โ„๏ธ Cold Build Time
  • ๐Ÿงต Concurrency Handling
  • ๐ŸŒ Compatibility & Ecosystem Overhead

๐Ÿ› ๏ธ Tools yang Digunakan

Jika benchmark dilakukan manual, akan takes time banget dan hasilnya bisa kurang akurat. Oleh karena itu, kita akan melakukan dengan salah satu dari beberapa tools benchmark yang biasa dipakai. Dari website resmi bun https://bun.sh/ (opens in a new tab) disarankan menggunakan oha atau bombardier. Kita lihat apa saja tools benchmark yang biasa dipakai.

  • autocannon โ€“ HTTP Benchmark CLI
  • wrk โ€“ HTTP performance benchmark tool
  • hyperfine โ€“ CLI execution time comparison
  • time โ€“ Linux basic time command
  • top/htop atau Task Manager โ€“ untuk lihat CPU/Memory
  • oha atau bombardier โ€“ HTTP benchmarking

๐Ÿ“Œ Note dari README Benchmark Express

https://github.com/oven-sh/bun/blob/main/bench/express/README.md (opens in a new tab)

Disarankan menggunakan oha atau bombardier untuk benchmark. Tidak disarankan pakai ab karena menggunakan HTTP/1.0 yang sudah usang. autocannon juga tidak disarankan karena keterbatasan performa node:http client untuk mengukur kecepatan HTTP server milik Bun. Gunakan Accept-Encoding: identity untuk mencegah kompresi di Deno.


๐Ÿงช Langkah Benchmark Express

  1. git clone https://github.com/oven-sh/bun.git (opens in a new tab)
  2. Masuk ke folder ./bench/express
  3. Install bombardier
  4. Jalankan benchmark untuk masing-masing runtime

๐Ÿ“ˆ Hasil Benchmark

โœ… Benchmark Bun

Hasil benchmark menggunakan Bun menunjukkan performa yang sangat impressive dengan request per second yang tinggi dan latency yang rendah.

โœ… Benchmark Node.js

Node.js menunjukkan performa yang stabil dengan ekosistem yang matang, meskipun dari segi kecepatan mulai tertinggal dibanding Bun.

โœ… Benchmark Deno

Sebelum melakukan benchmark, code program ada yang perlu diganti & deno tidak ada deno install karena saat running deno, akan install dependencies library yang dibutuhkan terlebih dahulu kemudian running aplikasi.

Deno menunjukkan performa yang menjanjikan dengan keamanan bawaan yang lebih baik.

โœ… Benchmark Dari website Bun

Dari berbagai metrik yang tersedia di website resmi Bun, terlihat jelas bahwa Bun unggul dalam berbagai aspek performa.


๐Ÿ“Œ Kesimpulan

๐Ÿ’ก Kalau kamu ingin bikin server cepat dan ringan, โžก๏ธ Bun bisa jadi pilihan utama.

๐Ÿ“ฆ Kalau butuh ekosistem library yang stabil, โžก๏ธ Node.js masih sangat relevan.

๐Ÿ” Kalau ingin runtime modern & secure, โžก๏ธ Deno layak dipertimbangkan.


๐Ÿ’ฌ Catatan Tambahan:

  • ๐Ÿ”ฅ Dari berbagai metrik, Bun secara konsisten unggul performa.
  • ๐Ÿข Node.js mulai tertinggal, walau secara ekosistem tetap juara.
  • ๐ŸŒฑ Deno menunjukkan potensi menjanjikan, terutama dalam latensi dan efisiensi.

Disclaimer

Hasil benchmark ini bisa berbeda dengan hasil yang Kamu lakukan sendiri ya. Dan ini hanya eksperimen sederhana untuk mengetahui benchmark masing-masing.


Kalau setuju atau punya insight tambahan, feel free komen ya! ๐Ÿ‘‡๐Ÿ˜Š

#Nodejs #Bun #Deno #Benchmark #WebDevelopment #JavaScript #PerformanceTest