TECHDEV · Flagship · Công cụ mã nguồn mở

runverdict

Đo app của bạn trên các JavaScript runtime đã cài trên máy của bạn và nhận kết luận nâng cấp kèm lý do — không phải benchmark headline đo trên app của người khác, trên máy của người khác.

TypeScript · CLI · MIT · Node 20+ · Không phụ thuộc runtime · Không cần tài khoản, không chạm mạng ngoài localhost, không dữ liệu nào rời khỏi máy. Không bao giờ tải runtime về.

Vấn đề mà công cụ trả lời

Node 26 bước vào Active LTS ngày 2026-10-28. Nhóm dùng Node 20 trở xuống đang chạy runtime không còn bản vá bảo mật. Nhóm dùng Node 22 và 24 phải lên kế hoạch di chuyển. Nhóm cân nhắc giữa Node và Bun chỉ có benchmark headline. Không công cụ headline nào trả lời, cho app của bạn trên máy của bạn: app có load được trên runtime đích không, chạy nhanh tới đâu ở đó, và có nên nâng cấp không — kèm lý do, không phải headline.

runverdict chỉ đo các runtime đã cài sẵn và báo các runtime còn lại là chưa cài. Nó không bao giờ tải runtime về.

Đo gì, trên mỗi runtime

Chỉ sốCách đo
Version và trạng thái EOLTừ bảng lịch tích hợp sẵn (chỉ Node; xem bên dưới)
Kiểm tra loadEntry được spawn; nếu lỗi, đuôi stderr được ghi nguyên văn — chính nó chỉ ra addon native hỏng hay module thiếu
Thời gian khởi độngTrung vị của 5 lần spawn, từ lúc spawn tới dòng stdout đầu tiên
Workload HTTPChỉ dùng client http tích hợp sẵn: requests/giây, độ trễ p50/p95 và peak RSS, cùng một workload, cùng thứ tự, trên cùng một máy cho mọi runtime

Repo đi kèm một sample app không phụ thuộc thư viện, có endpoint /health và /json (examples/sample-app.js). App lắng nghe trên process.env.PORT.

Kết luận

Kết luậnQuy tắcMã thoát
BLOCKEDRuntime đích lỗi kiểm tra load, hoặc không runtime nào cho ra số đo. Lý do nêu tên runtime lỗi và đuôi stderr của nó.1
UPGRADE-READYRuntime hiện tại đã EOL hoặc Maintenance, runtime đích load được, và req/s của nó không kém runtime hiện tại quá 10%.0
STAYCác trường hợp còn lại, kèm lý do và con số. Hồi quy đã đo vượt quá 10% là lý do để ở lại, nêu rõ cả hai con số.0

Định nghĩa: runtime hiện tại là runtime đầu tiên theo thứ tự --runtimes có số đo; runtime đích là runtime còn lại có hiệu năng tốt nhất đã đo được, nếu có. Chỉ có một runtime đo được thì không có đích để so sánh, nên kết luận là STAY. Mã thoát 1 cũng áp dụng khi không có số đo runtime dùng được; mã thoát 2 là lỗi sử dụng. Manifest JSON mang version runtime, trạng thái EOL, mọi con số đã đo, số lần chạy, kết luận kèm lý do, và ghi chú về máy: "single-machine measurement, not a general claim".

Bảng lịch EOL Node tích hợp sẵn

Node majorTrạng tháiEOL
20EOL2026-04-30
22Maintenance2027-04-30
24Maintenance2028-04-30
26Active LTS2029-04-30

Node major không rõ được báo là UNKNOWN, không bao giờ đoán. Bun không có lịch LTS/EOL: runverdict chỉ báo version Bun và không bao giờ bịa ngày EOL cho Bun. Deno rõ ràng ngoài phạm vi v1: không được phát hiện, và truyền --runtimes deno là lỗi, không phải bỏ qua âm thầm.

Cách dùng

# Cài đặt 3 bước (cần Node >= 20), rồi link binary một lần để dùng local
git clone https://github.com/techdevfun/runverdict
cd runverdict
npm install
npm link
# Ví dụ chạy được
runverdict runtimes
runverdict measure --entry examples/sample-app.js --url /json --runtimes node,bun --duration 5 --connections 20 --json out.json
runverdict --version

Lệnh chép đúng từ README của runverdict (package.json v0.1.0). --duration mặc định 10 giây và --connections mặc định 20. README không nêu cách cài từ npm registry, nên trang này không tuyên bố điều đó: cài đặt là luồng clone + npm install + npm link ở trên. Bản ghi nguyên văn một lần chạy demo thật trên máy build nằm trong examples/demo-transcript.txt của repo; chạy lại các lệnh sẽ cho con số mới, vì các con số là số đo.

Số liệu đã đo (README: phương pháp, không phải con số cố định)

Đây KHÔNG phải gì — và đối thủ hơn chúng ta ở đâu

Lộ trình (README): thêm định dạng báo cáo cho manifest JSON; đánh giá có tài liệu về một mục inventory runtime thứ ba, chỉ nếu đo được bằng cùng kiểm tra load, khởi động và workload; workload dài hơn, cấu hình được, mà không đổi quy tắc kết luận xác định.

Source + README trên GitHub → · Báo lỗi → · ask@techdev.fun

Giới hạn

Giấy phép

MIT. Xem LICENSE trong repo.

Công cụ liên quan

Các công cụ mã nguồn mở khác của TECHDEV: gheist-guard, vetgate, context-diet, ci-failure-detective, agent-seatbelt, devsecops-os, env-doctor, skill-audit, logtrim, testguard, breakcheck, keymap, memgraph, ggufit, leaseguard, factfence, jsonfold

Đóng góp ý kiến

Bình chọn cho công cụ này, đề xuất tính năng, hoặc thảo luận với các vận hành khác trên bảng cộng đồng.