年度盘点:JavaScript引擎V8的新编译器、基础架构升级与GC优化

发表时间: 2023-12-15 18:10

V8 官方博客回顾了 2023 年的重要变化:通过创新的性能优化,V8 不断突破 Web 领域的可能性界限。比如引入新的中间层编译器,对顶层编译器基础架构、运行时和垃圾回收进行多项改进,从而全面提升速度。

除了性能改进之外,V8 团队还为 JavaScript 和 WebAssembly 添加了许多新功能。比如通过 WasmGC 将支持垃圾回收的编程语言用于 Web 开发(Chrome 支持运行 Kotlin、Java 等 GC 编程语言)。

此外还改进了沙箱基础设施,并为 V8 引入了控制流完整性 (CFI),为用户提供了更安全的环境。

V8 2023 重磅新特性回顾

  1. 新的中间层编译器 Maglev:Maglev 是 V8 引擎的新中间层编译器,它的推出使得代码的优化速度大大提高。相比于现有的编译器,Maglev 的编译速度快了 10 到 100 倍,并且在 JetStream 和 Speedometer 等性能测试中取得了 8.2% 和 6% 的性能提升。

  2. 新的顶层优化编译器架构 Turboshaft:V8 引擎还引入了 Turboshaft,这是一个用于顶层优化编译器的新内部架构。使用 Turboshaft 后,编译速度提高了一倍,这有助于节约能源并为未来的性能提升奠定基础。

  3. 更快的 HTML 解析器:V8 团队对 HTML 解析器进行了优化,这导致 Speedometer 测试分数提高了 3.4%。这些变化也被 WebKit 项目采纳,从而对 Chrome 浏览器的性能产生了积极影响。

  4. 更快的 DOM 分配:V8 团队还对 DOM 对象的内存分配策略进行了优化,这使得 DOM 对象的分配速度提高了 3 倍,并在 DOM 密集型测试中取得了显著的改进。

  5. 新的 JavaScript 特性:V8 引擎还推出了一系列新的 JavaScript 特性,包括可调整大小的 ArrayBuffers、ArrayBuffer 传输、String isWellFormed 和 toWellFormed 等。

  6. WebAssembly 更新:V8 引擎为 WebAssembly 引入了多个新特性和性能优化,包括对多内存的支持、尾调用、放松的 SIMD 等。

  7. WebAssembly 垃圾回收:V8 引擎最终实现了 WebAssembly 垃圾回收(WasmGC),这使得可以将使用 Java、Kotlin、Dart 等垃圾回收语言编写的应用程序编译为 WebAssembly,从而提高了其运行速度。

  8. 安全增强:V8 引擎还在安全方面进行了改进,包括改进了沙箱基础设施、引入了控制流完整性(CFI)等。

原文:https://v8.dev/blog