跳到主要内容

在V8中实现排序

· 阅读需 18 分钟
Simon Zünd ([@nimODota](https://twitter.com/nimODota)),一致的比较器

Array.prototype.sort是V8中最后几个用自托管JavaScript实现的内置函数之一。移植它为我们提供了实验不同算法和实现策略的机会,并最终在V8 v7.0 / Chrome 70中让它变得稳定

提升 V8 中 `DataView` 性能

· 阅读需 9 分钟
Théotime Grohens, <i lang="fr">低数据视图专家</i>,以及 Benedikt Meurer ([@bmeurer](https://twitter.com/bmeurer)),专业性能伙伴

DataViews 是 JavaScript 中低级内存访问的两种可能方式之一,另一种是 TypedArrays。到目前为止,V8 中的 DataViews 比 TypedArrays 的优化程度低得多,导致在诸如图形密集工作负载或解码/编码二进制数据的任务中性能较差。这些情况的原因主要是历史选择,例如 asm.js 选择了 TypedArrays 而不是 DataViews,从而导致引擎更专注于 TypedArrays 的性能。

庆祝V8发布十周年

· 阅读需 14 分钟
Mathias Bynens([@mathias](https://twitter.com/mathias)),V8历史学者

本月标志着不仅是谷歌浏览器发布的十周年,同时也是V8项目发布的十周年。这篇文章概述了V8项目在过去10年中的主要里程碑,以及项目仍处于保密阶段时的早期发展。

嵌入的内置函数

· 阅读需 12 分钟
Jakob Gruber ([@schuay](https://twitter.com/schuay))

V8内置函数(builtins)在每个V8实例中都会消耗内存。内置函数的数量、平均大小以及每个Chrome浏览器标签页中的V8实例数量显著增长。这篇博客描述了过去一年中我们如何将每个网站的V8堆大小中值减少19%。

V8 发布 v6.9

· 阅读需 5 分钟
V8 团队

每隔六周,我们会按照发布流程创建一个新的 V8 分支。每个版本从 V8 的 Git 主分支被分离出来,紧接在 Chrome Beta 里程碑之前。今天我们很高兴宣布最新的分支,V8 版本 6.9,该分支处于 Beta 阶段,几周后将与 Chrome 69 稳定版发布同步。V8 v6.9 包含了各种面向开发者的增值内容。这篇文章预览了一些亮点,为发布做准备。

通过嵌入的内置函数减少内存占用

V8 带有一个广泛的内置函数库。这些函数包括内置对象的方法,如 Array.prototype.sortRegExp.prototype.exec,还有各种内部功能。由于生成它们需要较长的时间,内置函数会在构建时被编译并序列化到一个快照中,然后在运行时反序列化以创建初始的 JavaScript 堆状态。

V8发布v6.8版本

· 阅读需 4 分钟
V8团队

每六周,我们都会根据发布流程创建一个新的V8分支。每个版本都在Chrome Beta里程碑之前从V8的Git主分支分出。今天我们很高兴宣布我们的最新分支,V8版本6.8,该版本目前处于测试阶段,并将在几周后与Chrome 68稳定版一起发布。V8 v6.8为开发者带来了各种好东西。这篇文章为即将发布的版本提供了一些亮点的预览。

V8中的并发标记

· 阅读需 13 分钟
Ulan Degenbaev, Michael Lippautz 和 Hannes Payer — 主线程解放者

这篇文章描述了一种叫做_并发标记_的垃圾回收技术。这项优化使 JavaScript 应用程序在垃圾回收器扫描堆以发现并标记活动对象时可以继续执行。我们的基准测试表明,并发标记将主线程上标记所需的时间减少了60%-70%。并发标记是 Orinoco 项目 的最后一块拼图 — 这是一个逐步用新的大多数并发和并行垃圾回收器替换旧垃圾回收器的项目。并发标记在 Chrome 64 和 Node.js v10 中默认启用。

V8 发布 v6.7

· 阅读需 2 分钟
V8 团队

每六周,我们都会基于我们的发布流程创建一个新的 V8 分支。每个版本分支都在 Chrome Beta 里程碑之前立即从 V8 的 Git 主分支中分出。今天我们很高兴地宣布我们的最新分支,V8 版本 6.7,该版本目前处于测试阶段,几周后将与 Chrome 67 稳定版同步发布。V8 v6.7 包含了各种面向开发者的实用功能。这篇文章提供了期待发布的一些亮点预览。

向V8添加BigInts

· 阅读需 8 分钟
Jakob Kummerow,精度仲裁者

过去几个月里,我们在V8中实现了对BigInts的支持,该功能目前由此提案规范,计划在未来版本的ECMAScript中加入。以下是我们的冒险故事。