Phần mềm tạo cấu hình benchmark JavaScript trực tuyến miễn phí, không cần cài đặt. Chương trình giúp so sánh tốc độ thực thi mã JavaScript.
Phần mềm chuyển đổi lệnh Docker run sang định dạng docker-compose.yml trực tuyến miễn phí, không cần cài đặt. Chương trình chuyển đổi các lệnh Docker run thành file docker-compose.yml.
Giới thiệu Benchmark Builder
Công cụ micro-benchmark JavaScript đối đầu trực tiếp: dán hai thân hàm (Snippet A và Snippet B), đặt số lần lặp và công cụ sẽ chạy mỗi snippet qua 100 lượt gọi làm nóng theo sau là số lượt gọi đo lường đã cấu hình, sau đó báo cáo tổng thời gian, thao tác mỗi giây, cũng như snippet nào nhanh hơn và theo tỷ lệ nào.
Cách sử dụng
1. Đặt Số lần lặp (mặc định 10000) trong thẻ trên cùng. 2. Trong thẻ Snippet A, nhập nhãn tùy chọn (mặc định "A") và thân hàm cần benchmark (ví dụ `return Math.random()`). 3. Làm tương tự cho Snippet B (ví dụ `return crypto.getRandomValues(new Uint32Array(1))[0]`). 4. Nhấp vào Chạy — nút bị vô hiệu hóa cho đến khi cả hai thân snippet đều không trống. 5. Đọc thẻ Kết quả: mỗi snippet hiển thị tổng thời gian tính bằng mili giây và thao tác mỗi giây, cộng thêm dòng chân trang nêu snippet nhanh hơn và tỷ lệ tốc độ. Nếu một snippet ném ra ngoại lệ, lỗi của nó sẽ hiển thị màu đỏ.
Mô hình thực thi và số liệu
Mỗi snippet được bao bọc bằng `new Function(code)` và được gọi như một hàm không tham số, do đó nó phải là thân hàm hợp lệ (dùng `return ...` để làm việc; câu lệnh cấp cao nhất cũng được phép). - Làm nóng: 100 lượt gọi không điều kiện trước khi đo, để engine JS tối ưu hóa. - Đo lường: `performance.now()` được lấy mẫu trước và sau khi chạy snippet `iterations` lần trong một vòng lặp chặt. - Thao tác mỗi giây: được tính là `iterations / (timeMs / 1000)`, làm tròn. - Tỷ lệ: `max(timeA, timeB) / min(timeA, timeB)`, hiển thị với 2 chữ số thập phân; snippet có thời gian nhỏ hơn được báo cáo là nhanh hơn. Lưu ý rằng đây là micro-benchmark trong trình duyệt theo khả năng tốt nhất, không phải bộ đo thống kê chặt chẽ: kết quả thay đổi theo tải máy, engine trình duyệt, các khoảng dừng GC và việc loại bỏ mã chết.
▶Tại sao kết quả của tôi lại khác nhau mỗi lần nhấp Chạy?
▶Các snippet có thể truy cập biến, import hoặc async/await không?
▶Điều gì xảy ra nếu một snippet ném ra ngoại lệ?
▶Dữ liệu của tôi có được gửi đến máy chủ không?
Nếu công cụ này đã giúp ích cho bạn, hãy nghĩ đến việc mua một cốc cà phê cho tôi.
Hãy mua cho tôi một cốc cà phê nhé.