在V8中实现排序
Array.prototype.sort
是V8中最后几个用自托管JavaScript实现的内置函数之一。移植它为我们提供了实验不同算法和实现策略的机会,并最终在V8 v7.0 / Chrome 70中让它变得稳定。
Array.prototype.sort
是V8中最后几个用自托管JavaScript实现的内置函数之一。移植它为我们提供了实验不同算法和实现策略的机会,并最终在V8 v7.0 / Chrome 70中让它变得稳定。
DataView
s 是 JavaScript 中低级内存访问的两种可能方式之一,另一种是 TypedArray
s。到目前为止,V8 中的 DataView
s 比 TypedArray
s 的优化程度低得多,导致在诸如图形密集工作负载或解码/编码二进制数据的任务中性能较差。这些情况的原因主要是历史选择,例如 asm.js 选择了 TypedArray
s 而不是 DataView
s,从而导致引擎更专注于 TypedArray
s 的性能。
本月标志着不仅是谷歌浏览器发布的十周年,同时也是V8项目发布的十周年。这篇文章概述了V8项目在过去10年中的主要里程碑,以及项目仍处于保密阶段时的早期发展。
V8 v6.9 包括了 Liftoff,一款 WebAssembly 的新基线编译器。Liftoff 现已默认在桌面系统上启用。本文详细介绍了添加另一个编译层的动机,并描述了 Liftoff 的实现及性能表现。
V8内置函数(builtins)在每个V8实例中都会消耗内存。内置函数的数量、平均大小以及每个Chrome浏览器标签页中的V8实例数量显著增长。这篇博客描述了过去一年中我们如何将每个网站的V8堆大小中值减少19%。
每隔六周,我们会按照发布流程创建一个新的 V8 分支。每个版本从 V8 的 Git 主分支被分离出来,紧接在 Chrome Beta 里程碑之前。今天我们很高兴宣布最新的分支,V8 版本 6.9,该分支处于 Beta 阶段,几周后将与 Chrome 69 稳定版发布同步。V8 v6.9 包含了各种面向开发者的增值内容。这篇文章预览了一些亮点,为发布做准备。
V8 带有一个广泛的内置函数库。这些函数包括内置对象的方法,如 Array.prototype.sort
和 RegExp.prototype.exec
,还有各种内部功能。由于生成它们需要较长的时间,内置函数会在构建时被编译并序列化到一个快照中,然后在运行时反序列化以创建初始的 JavaScript 堆状态。
这篇文章描述了一种叫做_并发标记_的垃圾回收技术。这项优化使 JavaScript 应用程序在垃圾回收器扫描堆以发现并标记活动对象时可以继续执行。我们的基准测试表明,并发标记将主线程上标记所需的时间减少了60%-70%。并发标记是 Orinoco 项目 的最后一块拼图 — 这是一个逐步用新的大多数并发和并行垃圾回收器替换旧垃圾回收器的项目。并发标记在 Chrome 64 和 Node.js v10 中默认启用。