Người dùng Firefox có thể mong đợi hiệu suất JavaScript được cải thiện trong trình duyệt Firefox 83, với bản cập nhật Warp cho công cụ JavaScript SpiderMonkey được bật theo mặc định.

Còn được gọi là WarpBuilder, Warp cải thiện khả năng phản hồi và sử dụng bộ nhớ, đồng thời tăng tốc độ tải trang bằng cách thực hiện các thay đổi đối với trình biên dịch JiT (just-in-time). Việc tối ưu hóa JiT được thay đổi để chỉ dựa vào định dạng mã bytecode tuyến tính đơn giản của CacheIR, cụ thể là dữ liệu CacheIR được thu thập bởi các cấp cơ sở. Kiến trúc mới được tận dụng trong trình duyệt cũng được mô tả là dễ bảo trì hơn và mở khóa các cải tiến bổ sung của SpiderMonkey.

Firefox 83 đã được xuất bản trong bản beta vào ngày 20 tháng 10 và dự kiến ​​phát hành vào ngày 17 tháng 11. Warp đã được chứng minh là nhanh hơn Ion, tối ưu hóa JiT trước đó của SpiderMonkey, bao gồm cải thiện 20% thời gian tải của Google Documents. Các trang web sử dụng nhiều JavaScript khác như Netflix và Reddit cũng đã cho thấy sự cải thiện.

Basing Warp trên CacheIR cho phép loại bỏ mã trong toàn bộ công cụ cần thiết để theo dõi dữ liệu suy luận kiểu toàn cục được IonBuilder sử dụng, dẫn đến tăng tốc độ. Mặc dù IonBuilder và WarpBuilder đều tạo ra Ion MIR, một đại diện trung gian được sử dụng bởi phần cuối tối ưu hóa JiT, IonBuilder có rất nhiều mã phức tạp không cần thiết trong WarpBuilder. Warp cũng có thể thực hiện nhiều công việc ngoài luồng hơn và cần ít biên dịch lại hơn. Các kế hoạch yêu cầu tiếp tục tối ưu hóa Warp, hiện tại chậm hơn Ion trên một số điểm chuẩn tổng hợp.

Warp đã thay thế giao diện người dùng – giai đoạn xây dựng MIR – của IonMonkey JiT. Các kế hoạch kêu gọi loại bỏ mã và kiến ​​trúc cũ, điều này có thể xảy ra trong Firefox 85. Do đó, dự kiến ​​sẽ có thêm các cải tiến về hiệu suất và sử dụng bộ nhớ. Mozilla cũng sẽ tiếp tục tối ưu hóa từng bước phần cuối của IonMonkey JiT, vì Mozilla tin rằng vẫn còn chỗ để cải thiện cho khối lượng công việc sử dụng nhiều JavaScript. Cũng trong quá trình phát triển là một công cụ dành cho các nhà phát triển web và Mozilla để khám phá dữ liệu CacheIR cho một hàm JavaScript.

Các nguồn kiến thức từ cafedev:

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:

Chào thân ái và quyết thắng!