V8 JavaScript 引擎 6.5 发布 :编译速度显著提升 - 开源中国社区
Float_left Icon_close
V8 JavaScript 引擎 6.5 发布 :编译速度显著提升
达尔文 2018年02月02日

V8 JavaScript 引擎 6.5 发布 :编译速度显著提升

达尔文 达尔文 发布于2018年02月02日 收藏 7

阿里云高性能云服务器,2折起! >>> >>>  

V8 JavaScript 引擎 6.5 发布了。添加不受信任代码模式,支持流式编译 WebAssembly 代码。详情可以查看这里

主要更新内容如下:

不受信任的代码模式

为了应对最新的 Spectre 的攻击,V8 引入了一个不可信的代码模式。 如果您嵌入 V8,考虑利用这种模式,防止应用程序处理用户生成的,不可信的代码。该模式默认情况下处于启用状态,包括在 Chrome 中。

流式编译 WebAssembly 代码

WebAssembly API 提供了一个特殊的功能来支持流式编译和 fetch()API 的结合:

const module = await WebAssembly.compileStreaming(fetch('foo.wasm'));

使用 V8 v6.5 和 Chrome 65,我们已经在下载模块字节的同时,利用这个 API 并编译了 WebAssembly 模块。 只要我们下载了单个函数的所有字节,我们就把函数传递给后台线程进行编译。

使用此 API,Chrome 65 中的 WebAssembly 编译可以在高端机器上保持高达 50 Mbit / sec 的下载速度。 这意味着如果您以 50 Mbit / sec 的速度下载 WebAssembly 代码,只要下载完成,编译该代码就会结束。


速度

扩展 JavaScript 内置的快速路径,增加一种机制来检测和防止称为“去最佳化循环”的破坏性情况。同时,还通过内联许多内建函数来扩展快速路径,这些内建函数由于调用函数的负载和调用本身(例如函数调用)之间的副作用而被排除在外。 而 String.prototype.index 在函数调用中性能提高了10倍。

在V8 v6.4中,我们内嵌了对Array.prototype.forEach,Array.prototype.map和Array.prototype.filter的支持。 在V8 v6.5中,我们添加了内联支持:

  • Array.prototype.reduce

  • Array.prototype.reduceRight

  • Array.prototype.find

  • Array.prototype.findIndex

  • Array.prototype.some

  • Array.prototype.every

 

V8 API

请使用 git log branch-heads/6.4..branch-heads/6.5 include/v8.h 来获取 API 变更列表。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:V8 JavaScript 引擎 6.5 发布 :编译速度显著提升
分享
评论(6)
最新评论
0

引用来自“Raymin”的评论

JS 语法、表达能力、易用性不占优势,WebAssembly 来了,可以考虑给其它语言让贤了。

引用来自“eechen”的评论

Firefox 58中的流编译器会让浏览器加载WebAssembly文件的速度比同等大小的JavaScript文件更快.
同时,Firefox 58的双层编译器会在编译非优化代码时优化代码的编译时间.

Firefox和Chrome齐发力优化WebAssembly,前端对性能有要求的部分,JS只能让贤给WebAssembly.

引用来自“SvenZhao”的评论

让贤 也没有你PHP什么事
对,的确跟PHP没什么事,PHP依旧是要HTML渲染HTML,要JSON返回JSON,要解析HTML就DOMDocument/DOMXPath,要异步就Swoole,PHP专心做好服务器端开发就够了.
0

引用来自“Raymin”的评论

JS 语法、表达能力、易用性不占优势,WebAssembly 来了,可以考虑给其它语言让贤了。

引用来自“eechen”的评论

Firefox 58中的流编译器会让浏览器加载WebAssembly文件的速度比同等大小的JavaScript文件更快.
同时,Firefox 58的双层编译器会在编译非优化代码时优化代码的编译时间.

Firefox和Chrome齐发力优化WebAssembly,前端对性能有要求的部分,JS只能让贤给WebAssembly.
让贤 也没有你PHP什么事
0

引用来自“Raymin”的评论

JS 语法、表达能力、易用性不占优势,WebAssembly 来了,可以考虑给其它语言让贤了。
Firefox 58中的流编译器会让浏览器加载WebAssembly文件的速度比同等大小的JavaScript文件更快.
同时,Firefox 58的双层编译器会在编译非优化代码时优化代码的编译时间.

Firefox和Chrome齐发力优化WebAssembly,前端对性能有要求的部分,JS只能让贤给WebAssembly.
0
V8本身是自由的开源滴吗?
0
JS 语法、表达能力、易用性不占优势,WebAssembly 来了,可以考虑给其它语言让贤了。
0
牛逼牛逼
顶部