Load Test ด้วย Bun

JavaScript Runtime ที่รวมเอาทุกอย่างไว้ด้วยกัน เห็นมีการพูดถึง Bun ซึ่งเป็น JavaScript Runtime ที่รวมเอาทุกอย่างไว้ด้วยกัน ทั้ง Bundling ของ JS และ CSS, Transpiler ของ JS, TS และ JSX JavaScript Runtime ที่มี Web API มาเลย ทั้ง fetch และ websocket เป็นต้น

Task runner และ package manager ที่ทำงานร่วมกับ package.json และ npm ได้เลย

ที่สำคัญเร็วมาก ๆ !!

ปล. แต่เป็นเพียงตัวที่สร้างขึ้นมาเพื่อทดลองเท่านั้นนะ !!

Bun พัฒนาด้วยภาษา Zig และ C++ เป็นหลัก

มาลองใช้งานง่าย ๆ กัน

เริ่มด้วยการติดตั้ง

$curl -fsSL https://bun.sh/install | bash
	$bun -v
	0.1.2

จากนั้นลองเขียน api server เล่นหน่อย ด้วย fetch

export default {
	  port: 3000,
	  fetch(request) {
	    return new Response("Welcome to Bun!");
	  },
	};

สุดท้ายก็ลอง start server และยิง load test ด้วย WRK ดูหน่อย

จะได้ผลตามนี้ ยิงเบา ๆ

ได้ผลออกมา โหดร้ายจริง ๆ

// Start API server
	$bun run api.js
	
	$curl http://localhost:3000
	Welcome to Bun!
	

	// Load testing with WRK
	$wrk -t 5 -c 100  -d 10s http://localhost:3000
	

	Running 10s test @ http://localhost:3000
	  5 threads and 100 connections
	  Thread Stats   Avg      Stdev     Max   +/- Stdev
	    Latency   847.11us  320.60us  11.17ms   95.50%
	    Req/Sec    23.79k     1.89k   26.56k    83.17%
	  1195402 requests in 10.10s, 107.16MB read
	Requests/sec: 118339.21
	Transfer/sec:     10.61MB
0
211