SpiderMonkey nói lời tạm biệt với Asm.js: Kỷ nguyên WebAssembly lên ngôi
Với bản phát hành Firefox 148, SpiderMonkey đã vô hiệu hóa các tối ưu hóa asm.js theo mặc định và dự kiến sẽ loại bỏ hoàn toàn mã nguồn này trong tương lai. Mặc dù mã asm.js vẫn hoạt động, Mozilla khuyến khích các nhà phát triển chuyển sang WebAssembly để đạt hiệu suất cao hơn và giảm thiểu chi phí bảo trì.

SpiderMonkey nói lời tạm biệt với Asm.js: Kỷ nguyên WebAssembly lên ngôi
Kể từ phiên bản Firefox 148, các tối ưu hóa asm.js trong engine SpiderMonkey đã bị vô hiệu hóa theo mặc định. Mozilla có kế hoạch sẽ loại bỏ hoàn toàn mã nguồn của tính năng này trong một bản phát hành tương lai.
Nếu bạn đang vận hành một trang web sử dụng asm.js, đừng quá lo lắng vì mọi thứ sẽ không bị vỡ. Asm.js thực chất chỉ là một tập con của JavaScript thuần túy, nên mã nguồn vẫn sẽ tiếp tục chạy thông qua trình biên dịch JIT (Just-In-Time) thông thường giống như bất kỳ tập lệnh nào khác. Tuy nhiên, việc biên dịch lại sang WebAssembly sẽ mang lại cho bạn tốc độ thực thi nhanh hơn và kích thước tệp nhị phân nhỏ gọn hơn.
OdinMonkey
Lịch sử hình thành
Asm.js là câu trả lời của Mozilla cho câu hỏi được đặt ra bởi NaCl và PNaCl thời bấy giờ: Làm thế nào để web có thể chạy mã nguồn với tốc độ native (tốc độ gốc)?
Ý tưởng rất thông minh: chọn một tập con nghiêm ngặt, tĩnh kiểu của JavaScript mà engine trình duyệt có thể nhận diện ngay lập tức và biên dịch xuống mã native. Nhờ đó, chúng ta có thể đạt được hiệu suất tương đương với NaCl/PNaCl mà vẫn giữ mã nằm trong nội dung web và sử dụng các API của web (không cần sandbox riêng, IPC hay các API thay thế).
Asm.js được ra mắt cùng Firefox 22 vào năm 2013 và là một thành công rực rỡ. Nó đã cho phép các dự án như Unity và Unreal đưa các mã nguồn C/C++ lên web lần đầu tiên, chỉ sử dụng các công nghệ web tiêu chuẩn. Bản demo Epic Citadel đã được chuyển port sang web chỉ trong vòng bốn ngày. Đây là một thành tựu mang tính cột mốc, và là một kỷ niệm đẹp đẽ của đội ngũ phát triển asm.js nguyên bản.
Asm.js đã chứng minh rằng chúng ta có thể chạy mã ở tốc độ gần native trên web chỉ bằng công nghệ web. Điều này đã mở đường cho WebAssembly, được ra mắt vài năm sau đó trong Firefox 52. Nếu không có asm.js, có lẽ chúng ta sẽ không có WebAssembly ngày hôm nay.
Tại sao là ngay bây giờ?
Vậy tại sao lại tắt nó đi? WebAssembly đã thành công, và việc sử dụng asm.js đã chủ yếu di cư sang nền tảng mới này. Việc duy trì đường dẫn asm.js song song với WebAssembly tốn của chúng ta thời gian bảo trì và tạo ra thêm bề mặt tấn công trong máy ảo (VM).
Nếu bạn đang phân phối nội dung asm.js, hãy cân nhắc biên dịch lại sang WebAssembly! Quy trình WebAssembly của chúng tôi hiện đại hơn đáng kể so với asm.js từng có. Bạn sẽ thấy tốc độ thực thi nhanh hơn và các tệp nhị phân nhỏ hơn.
BaldrMonkey
Ragnarök của trình biên dịch
Trình biên dịch asm.js được đặt tên là OdinMonkey. Như đã được tiên đoán từ lâu, OdinMonkey phải đối mặt với số phận định mệnh của mình. Lỗi theo dõi Ragnarök ghi lại "Hoàng hôn của OdinMonkey".
Tuy nhiên, chưa phải là hết tất cả, vì sinh ra từ OdinMonkey là BaldrMonkey, trình biên dịch tối ưu hóa WebAssembly của chúng tôi. OdinMonkey có thể bị con sói Fenrir nuốt chửng, nhưng BaldrMonkey sẽ cai trị thế giới tái sinh cùng với RabaldrMonkey ("sự xôn xao"), trình biên dịch cơ sở WebAssembly của chúng tôi.
Vào ngày Odin này (Thứ Tư), chúng tôi cảm ơn OdinMonkey vì 13 năm cống hiến. Skål!
Bài viết liên quan

Công nghệ
Cerebras, đối tác thân thiết của OpenAI, sẵn sàng cho đợt IPO kỷ lục định giá tới 26,6 tỷ USD
04 tháng 5, 2026

Công nghệ
Microsoft giới thiệu Surface Pro 12 và Surface Laptop 8: Sức mạnh chip Intel, giá thành gây sốc
19 tháng 5, 2026
Công nghệ
Trang web ngăn chặn tự tử tại Hà Lan bị phát hiện chia sẻ dữ liệu người dùng cho các công ty công nghệ
13 tháng 5, 2026
