跳到主要内容

V8扩展功能

· 阅读需 6 分钟
Domenic Denicola ([@domenic](https://twitter.com/domenic)), 流处理大师

V8在JavaScript本身中实现了JavaScript语言内置对象和函数的大部分子集。例如,您可以看到我们的Promise实现是用JavaScript编写的。这类内置对象称为_基于自身的_。这些实现包含在我们启动快照中,因此可以快速创建新上下文,而无需在运行时设置和初始化基于自身的内置对象。

V8 发布 v4.9

· 阅读需 6 分钟
V8团队

大约每六周,我们会创建一个新的 V8 分支,作为 发布流程 的一部分。每个版本都会在 Chrome 为 Chrome Beta 里程碑分支之前立即从 V8 的 Git 主分支派生。今天我们很高兴地宣布我们的最新分支,V8 版本 4.9,该分支将在与 Chrome 49 稳定版同步发布之前处于 Beta 阶段。V8 4.9 充满了各种面向开发者的功能,因此在未来几周发布之前,我们希望为您预览一些亮点。

有 `Math.random()`,也有 `Math.random()`

· 阅读需 4 分钟
杨国 ([@hashseed](https://twitter.com/hashseed)),软件工程师兼骰子设计师

Math.random() 返回一个带正号的 Number 值,大于或等于 0 但小于 1,在该范围内随机或伪随机地选择,近似均匀分布,使用与实现相关的算法或策略。本函数不接受任何参数。

V8 发布 v4.8

· 阅读需 2 分钟
V8 团队

大约每六周,我们会按照我们的发布流程创建一个新的 V8 分支。每个版本都直接从 V8 的 Git 主分支分支出来,时间点正好是 Chrome 分支用于 Chrome Beta 里程碑之前。今天我们很高兴地宣布我们的最新分支 V8 版本 4.8,该版本将在与 Chrome 48 稳定版同步发布之前处于测试阶段。V8 4.8 包含一些面向开发者的功能,下面我们将为即将发布的几个星期内的亮点功能做一个预览。

Jank Busters 第一部分

· 阅读需 4 分钟
卡顿终结者:Jochen Eisinger,Michael Lippautz 和 Hannes Payer

卡顿,也就是肉眼可见的卡顿,可以在 Chrome 未能在 16.66 毫秒内渲染一帧时被注意到(导致每秒 60 帧的运动中断)。截至今天,大多数 V8 的垃圾回收工作是在主渲染线程上执行的,参见图 1,这通常导致在需要维护过多对象时出现卡顿。消除卡顿一直是 V8 团队的优先任务之一(123)。本文讨论了在 Chrome 41 和 Chrome 46 之间实施的一些优化,这些优化显著减少了垃圾回收的暂停时间,从而提高了用户体验。

V8发布v4.7

· 阅读需 2 分钟
V8团队

大约每六周,我们根据发布流程为V8创建一个新的分支。每个版本都从V8的Git主分支中分离出来,时间正好在Chrome分支进入Chrome Beta里程碑之前。今天我们很高兴宣布我们的最新分支,V8版本4.7,它将处于测试阶段,直到与Chrome 47稳定版协调发布为止。V8 v4.7包含各种面向开发者的功能,因此为了迎接几周后的正式发布,我们想介绍一些亮点。

自定义启动快照

· 阅读需 3 分钟
杨国([@hashseed](https://twitter.com/hashseed)),软件工程师和引擎预热供应商

JavaScript 规范中包含了许多内置功能,从数学函数到一个功能齐全的正则表达式引擎。每个新创建的 V8 上下文从一开始就可以使用这些功能。为了实现这一点,全局对象(例如浏览器中的 window 对象)和所有内置功能必须在创建上下文时设置并初始化到 V8 的堆中。从头开始执行这些操作需要相当多的时间。

V8版本发布v4.6

· 阅读需 5 分钟
V8团队

大约每六周,我们会创建一个新的V8分支作为我们发布流程的一部分。每个版本是在Chrome为Beta里程碑分支之前,直接从V8的Git主分支分支出来的。今天我们很高兴宣布我们的最新分支,V8版本4.6,它将在Chrome 46稳定版发布之前处于Beta版本阶段。V8 4.6包含各种面向开发者的实用功能,因此我们想提前向你介绍一些亮点,以期待未来几周的发布。

免费获得垃圾回收

· 阅读需 9 分钟
Hannes Payer和Ross McIlroy,Idle垃圾收集器

JavaScript性能仍然是Chrome核心价值的关键部分,尤其是在提供流畅体验方面。自Chrome 41开始,V8采用了一种新技术,通过在小的、否则会被闲置的时间片段中隐藏昂贵的内存管理操作,提高了网页应用程序的响应性。因此,网页开发者可以期望更流畅的滚动效果和柔顺动画,同时由于垃圾回收减少了大量卡顿现象。

代码缓存

· 阅读需 2 分钟
杨果 ([@hashseed](https://twitter.com/hashseed)),软件工程师

V8 使用即时编译(JIT)来执行 JavaScript 代码。这意味着在运行脚本之前必须立即对其进行解析和编译,这可能会导致相当大的开销。正如我们最近宣布,代码缓存是一种减少开销的技术。首次编译脚本时,会生成并存储缓存数据。下次 V8 需要编译相同的脚本时,即使在不同的 V8 实例中,也可以使用缓存数据重新生成编译结果,而无需从头编译。因此,脚本执行速度显著提高。