- Tóm tắt những cải tiến ấn tượng của động cơ V8 trong năm 2023
- Cải thiện tốc độ tổng thể nhờ đưa vào trình biên dịch trung gian mới cùng các cải tiến ở trình biên dịch tầng cao, runtime và bộ gom rác
- Bổ sung các tính năng mới cho JavaScript và WebAssembly, đồng thời mang các ngôn ngữ lập trình có garbage collection lên web một cách hiệu quả thông qua WebAssembly garbage collection (WasmGC)
- Nâng cao độ an toàn bằng cách cải thiện hạ tầng sandboxing và đưa control-flow integrity (CFI) vào V8
Maglev: trình biên dịch tối ưu hóa trung gian mới
- Giới thiệu trình biên dịch tối ưu hóa mới Maglev, hoạt động giữa Sparkplug và TurboFan
- Maglev tạo mã chậm hơn khoảng 20 lần so với Sparkplug, nhưng nhanh hơn TurboFan từ 10 đến 100 lần
- Quan sát thấy hiệu năng tăng 8.2% trên JetStream và 6% trên Speedometer
- Tốc độ biên dịch nhanh của Maglev và việc giảm phụ thuộc vào TurboFan cũng giúp tiết kiệm năng lượng
Turboshaft: kiến trúc mới cho trình biên dịch tối ưu hóa tầng cao
- Giới thiệu Turboshaft, kiến trúc nội bộ mới của trình biên dịch tối ưu hóa tầng cao TurboFan
- Có thể bổ sung các tối ưu hóa mới và biên dịch nhanh hơn
- Từ Chrome 120, mọi giai đoạn backend không phụ thuộc CPU đều sử dụng Turboshaft, cho tốc độ biên dịch nhanh gần gấp đôi so với trước
Trình phân tích HTML nhanh hơn
- Bổ sung trình phân tích HTML nhanh hơn vào Blink để giảm thời gian dành cho việc phân tích HTML
- Điểm Speedometer tăng 3.4%
- Dự án WebKit đã tích hợp thay đổi này ngay lập tức
Cấp phát DOM nhanh hơn
- Đầu tư và tối ưu hóa ở phía DOM
- Thêm page pool vào bộ cấp phát Oilpan để giảm chi phí qua lại với kernel
- Hỗ trợ con trỏ nén và không nén, đồng thời tránh nén các trường truy cập tần suất cao trong Blink
- Oilpan hóa các lớp được cấp phát thường xuyên giúp tăng tốc thao tác cấp phát lên 3 lần và cải thiện hiệu năng trong các benchmark thiên về DOM
Các tính năng JavaScript mới
- Triển khai các tính năng JavaScript mới được chuẩn hóa.
- Bổ sung resizable ArrayBuffers, ArrayBuffer transfer, String
isWellFormed và toWellFormed, cờ v của RegExp, JSON.parse with source, Array grouping, Promise.withResolvers, Array.fromAsync cùng nhiều tính năng khác
- Tính năng Iterator helpers đã tạm thời bị rút lại do vấn đề tương thích web và sẽ được triển khai lại sau
- Bỏ qua một số kiểm tra vùng chết tạm thời không cần thiết để cải thiện hiệu năng cho mã JavaScript ES6+
Cập nhật WebAssembly
- Các tính năng mới và cải thiện hiệu năng cho Wasm
- Tăng hiệu năng nhờ hỗ trợ multi-memory, tail calls và relaxed SIMD
- Hoàn tất triển khai memory64 và sẽ phát hành khi đề xuất đạt giai đoạn 4
- Phản ánh các cập nhật mới nhất của đề xuất exception handling và hỗ trợ định dạng cũ
- Đầu tư vào JSPI để kích hoạt các lớp ứng dụng lớn hơn trên web
WebAssembly garbage collection
- Việc phát hành WasmGC cho phép cấp phát object và array được quản lý bởi bộ gom rác hiện có của V8
- Khi biên dịch các ứng dụng viết bằng những ngôn ngữ có garbage collection như Java, Kotlin, Dart sang Wasm, tốc độ chạy nhanh gần gấp đôi so với biên dịch sang JavaScript
Bảo mật
- Sandboxing, fuzzing và CFI là các chủ đề bảo mật chính trong năm nay
- Xây dựng hạ tầng sandboxing, đầu tư vào hạ tầng fuzzing và cải thiện phạm vi bao phủ ngôn ngữ
- Đặt nền móng cho kiến trúc CFI và có thể triển khai trên nhiều nền tảng khác nhau
- Giảm thiểu các kỹ thuật khai thác phổ biến xoay quanh
the_hole và khởi động chương trình tiền thưởng khai thác mới dưới dạng V8CTF
Kết luận
- Tác động cộng dồn của các dự án cải thiện hiệu năng nhỏ đã mang lại kết quả đáng kể
- Điểm benchmark thể hiện cải thiện hiệu năng của V8 trong năm 2023 đã tăng 14% trên JetStream và 34% trên Speedometer
- V8 giờ đây nhanh hơn và an toàn hơn, và hành trình hướng tới một web nhanh và mãnh liệt mới chỉ bắt đầu
- Nhóm V8 chúc mọi người có trải nghiệm duyệt web nhanh, an toàn và tuyệt vời
Chưa có bình luận nào.