JavaScript 引擎 V8 发布 8.6 版本

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

内容简介: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 版本获得了一个修复程序,该程序避免了在这种情况下通过参数适配器进行的调用,这使得受影响的调用明显更快。

发布公告


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

查看所有标签

猜你喜欢:

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

游戏之旅

游戏之旅

云风 / 电子工业出版社 / 2005-12-01 / 46.00

这是一本非常有特色的计算机编程学习书籍。其特色就在于它将作者十余年来对游戏编程的所思、所感、所悟与编程理论知识相结合,褪去了纯理论的教学理念,使读者在前人的学习过程中吸取学习经验和教训,将计算机基础知识和高级编程技术不知不觉地融入自己的头脑中。 本书忠实地记录了作者十余年来对游戏编程的所思、所感、所悟。全书按照作者本人学习和实践的过程,带着读者从基础的计算机知识到高级的编程技......一起来看看 《游戏之旅》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具