Nếu bạn đang phân vân lựa chọn giữa Node.js và Golang thì thí nghiệm nhỏ này sẽ cho bạn biết một tiêu chí về tốc độ của 2 ứng dụng web server tối giản hết mức có thể được viết bằng Node.js và Golang.
Tôi không sử dụng thêm bất kỳ thư viện thứ 3 nào để tránh các hiệu ứng phụ do thư viện đó quá phức tạp hoặc code không tối ưu.
Công cụ kiểm thử là hey. Lệnh kiểm thử hey -n 5000 -c 120 http://localhost:8000
Code web server Node.js và Golang như sau:
Node.js - nodeweb.js
var http = require('http');
http.createServer(function (req, res) {
res.write('Hello World');
res.end();
}).listen(8000);
Chạy Node.js web server như sau
node nodeweb.js
Golang - goweb.go
package main
import (
"fmt"
"log"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello World")
}
func main() {
http.HandleFunc("/", handler)
log.Fatal(http.ListenAndServe(":8000", nil))
}
Biên dịch file goweb ở trên ra binary rồi mới chạy
go build goweb.go
./goweb
Kết quả sau khi chạy nhiều lần lấy trung bình các mẫu
Số lượng request mà Golang web xử lý được trong 1 giây gấp 2 lần số lượng request mà Node.js xử lý được
Response time, thời gian phản hồi của Golang web server phân bố ở giải có tốc độ cao hơn thời gian phản hồi của Node.js . Hãy xem phần Response time histogram
Nếu phải viết một web server, microservice tốc độ cao, cần ít bộ nhớ hãy chọn Golang. Nếu chỉ muốn dùng duy nhất JavaScript để lập trình front end và back end, hãy chọn Node.js
Node.js
Summary:
Total: 0.2276 secs
Slowest: 0.0167 secs
Fastest: 0.0001 secs
Average: 0.0054 secs
Requests/sec: 21612.6167
Response time histogram:
0.000 [1] |
0.002 [38] |■
0.003 [0] |
0.005 [2403] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
0.007 [2078] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
0.008 [246] |■■■■
0.010 [35] |■
0.012 [39] |■
0.013 [34] |■
0.015 [25] |
0.017 [21] |
Golang
Summary:
Total: 0.1065 secs
Slowest: 0.0149 secs
Fastest: 0.0001 secs
Average: 0.0025 secs
Requests/sec: 46190.7606
Total data: 54120 bytes
Size/request: 11 bytes
Response time histogram:
0.000 [1] |
0.002 [1399] |■■■■■■■■■■■■■■■■■■■■■■■■
0.003 [2375] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
0.005 [768] |■■■■■■■■■■■■■
0.006 [136] |■■
0.008 [124] |■■
0.009 [59] |■
0.010 [48] |■
0.012 [4] |
0.013 [3] |
0.015 [3] |
Bình luận