JavaScript 引擎 V8 发布 8.6 版本

栏目: 软件资讯 · 发布时间: 5年前

内容简介:JavaScript 引擎 V8 发布了 8.6 版本(测试阶段),正式版本将在之后随 Chrome 86 一起推出。8.6 版本带来了一些面向开发人员的特性,主要亮点包括: JavaScript 开源 JS-Fuzzer JS-Fuzzer 一直是 V8 稳定性和安全...

JavaScript 引擎 V8 发布了 8.6 版本(测试阶段),正式版本将在之后随 Chrome 86 一起推出。8.6 版本带来了一些面向开发人员的特性,主要亮点包括:

JavaScript

开源 JS-Fuzzer

JS-Fuzzer 一直是 V8 稳定性和安全性的基石,现在它开源了。

最近 V8 团队开始以差异测试模式运行 fuzzer 实例,以检测 JavaScript 的正确性问题。

Number.prototype.toString 中的加速

在一般情况下,将 JavaScript 数字转换为字符串可能会非常复杂,必须考虑浮点精度、科学计数法、NaN、无穷大、舍入等。在计算之前,甚至不知道结果字符串的大小。因此,V8 对 Number.prototype.toString 的实现将提供给 C++ 运行时函数。

但很多时候,你可能只想打印一个简单的小整数(“Smi”)。这是一个简单得多的操作,不再需要调用 C++ 运行时函数的开销。因此,V8 团队为使用 Torque 编写的 Number.prototype.toString 添加了一个小整数的简单快速路径,以减少这种常见情况的开销。

Atomics.wake 已删除

将 Atomics.wake 重命名为 Atomics.notify 以匹配 v7.3 中的规格更改。现在,已弃用的 Atomics.wake 别名已删除。

此外,还有一些小的规范变化。

WebAssembly

在 Liftoff 中实现 SIMD

Liftoff 是 WebAssembly 的基准编译器,从 V8 v8.5 开始,所有平台上均已提供。SIMD 提案使 WebAssembly 可以利用常用的硬件矢量指令来加速计算密集型工作负载。它目前处于实验阶段。

SIMD 仅在 V8 的顶级编译器 TurboFan 中实现。现在,Liftoff 中也实现了 SIMD,你将可以在 Liftoff 中调试 SIMD 代码,其性能要比 WebAssembly 解释器好得多。

使用 Liftoff 标量实现作为基准,会看到以下结果:

JavaScript 引擎 V8 发布 8.6 版本

Liftoff SIMD 的速度比 Liftoff 标量快 2.8 倍,而 TurboFan SIMD 的速度要快 7.5 倍。

Wasm 到 JS 的调用速度更快

如果 WebAssembly 调用导入的 JavaScript 函数,则通过所谓的 “Wasm-to-JS wrapper”(或 “import wrapper”)进行调用。此包装器将参数转换为 JavaScript 可以理解的对象,并在返回 JavaScript 调用时,将返回值转换回 WebAssembly。

为了确保 JavaScript 参数对象准确反映从 WebAssembly 传递来的参数,如果检测到参数数量不匹配,则通过所谓的 “arguments adapter trampoline” 进行调用。

但是在很多情况下,这不是必需的,因为被调用的函数不使用 arguments 对象。v8.6 版本获得了一个修复程序,该程序避免了在这种情况下通过参数适配器进行的调用,这使得受影响的调用明显更快。

发布公告


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Building Websites with Joomla!

Building Websites with Joomla!

H Graf / Packt Publishing / 2006-01-20 / USD 44.99

This book is a fast paced tutorial to creating a website using Joomla!. If you've never used Joomla!, or even any web content management system before, then this book will walk you through each step i......一起来看看 《Building Websites with Joomla!》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具