WebAssembly có hiệu năng rất tốt, có thể bạn đã nghe qua về nó. Nhưng cụ thể điều gì khiến hiệu năng của WebAssembly tốt như vậy?

Trong series này hãy cùng tìm hiểu vì sao WebAssembly lại nhanh.

Nhưng, WebAssembly là gì đã?

WebAssembly là một cách khác để viết thực thi code trên trình duyệt. Thế nên khi ai đó nói WebAssembly thực thi nhanh, họ đang so sánh nó với Javascript.

Cũng cần nhấn mạnh rằng đây không phải là tình huống lựa chọn một trong hai, bạn một là lựa chọn WebAssembly hoặc Javascript, không phải như vậy. Trên thực thế lập trình viên được kì vọng sẽ sử dụng cả WebAssembly  và Javascript khi phát triển ứng dụng.

Nhưng nó sẽ rất có ích nếu bạn so sánh cách hai ngôn ngữ này thực thi, từ đó bạn có thể hiểu được tiềm năng mà WebAssembly có.

Đôi chút về hiệu năng trong lịch sử

Javascript được tạo ra năm 1995. Nó không được thiết kế để thực thi nhanh, và trong suốt thập kỉ đầu tiên, nó không nhanh.

Và rồi các trình duyệt bắt đầu cạnh tranh với nhau gay gắt hơn

Năm 2008, nhiều người gọi đó là thời điểm cuộc chiến hiệu năng bắt đầu. Nhiều trình duyệt bắt đầu sử dụng trình dịch just-in-time, hay còn gọi là JIT. Khi thực thi Javascript, JIT có thể quan sát những chu kì lặp đi lặp lại và tối ưu nó dưa vào các chu kì đó.

Với sự xuất hiện của JIT, đã tạo ra điểm bùng nổ của hiệu năng Javascript. Tốc độ của JS tăng 10x.

A graph showing JS execution performance increasing sharply in 2008

Với cải thiện như vậy, Javascript bắt đầu được sử dụng cho những mục đích không ai ngờ đến trước đó, ví dụ như dùng cho server-side với Nodejs. Hiệu năng cải thiện giúp Javascript có thể được sử dụng để giải quyết hàng loạt các bài toán mới.

Chúng ta nó thể đang bước vào một giai đoạn bùng nổ mới với WebAssembly .

A graph showing another performance spike in 2017 with a question mark next to it

Vậy hãy cùng tìm hiểu chi tiết vì sao WebAssembly thực thi nhanh.

Background:

WebAssembly, hiện tại:

WebAssembly, tương lai: