跳到主要内容

V8 发布 v7.7

· 阅读需 4 分钟
Mathias Bynens([@mathias](https://twitter.com/mathias)),发布说明的懒惰编写者

每六周,我们根据 发布流程创建一个新的 V8 分支。每个版本都是在 Chrome Beta 里程碑之前从 V8 的 Git 主分支派生出来的。今天我们很高兴地宣布我们的最新分支,V8 版本 7.7,该版本将在 beta 阶段持续到几周后与 Chrome 77 正式版同步发布。V8 v7.7充满了各种面向开发人员的新功能。本篇文章在正式发布之前预览了一些亮点。

Emscripten 和 LLVM WebAssembly 后端

· 阅读需 13 分钟
Alon Zakai

通常,WebAssembly 是从源语言编译而来的,这意味着开发者需要使用工具才能应用它。因此,V8 团队致力于相关的开源项目,例如 LLVMEmscriptenBinaryenWABT。本文介绍了我们在 Emscripten 和 LLVM 上的一些工作,这些工作将很快允许 Emscripten 默认切换到 LLVM WebAssembly 后端 —— 请测试并报告任何问题!

2019 年 JavaScript 的成本

· 阅读需 14 分钟
Addy Osmani ([@addyosmani](https://twitter.com/addyosmani)),JavaScript 清洁工,以及 Mathias Bynens ([@mathias](https://twitter.com/mathias)),主线程解放者
备注

注意: 如果你更喜欢观看演讲而不是阅读文章,请欣赏以下视频!如果不是,请跳过视频继续阅读。

“JavaScript 的成本”由 Addy Osmani 在 #PerfMatters 2019 年大会上演讲。

V8 发布版本 v7.6

· 阅读需 6 分钟
Adam Klein

每六周,我们会根据 发布流程 创建一个 V8 的新分支。每个版本都会在 Chrome Beta 里程碑之前从 V8 的 Git 主分支分出。今天,我们很高兴地宣布我们的最新分支 V8 版本 7.6,该版本将处于 Beta 阶段,直到几周后与 Chrome 76 Stable 协同发布。V8 v7.6 充满了各种面向开发者的精彩功能。本文旨在为即将发布的版本提供一些亮点预览。

代码缓存为WebAssembly开发者服务

· 阅读需 10 分钟
[比尔·巴奇](https://twitter.com/billb),让缓存充满Ca-ching!

开发者中流传着这样一句话:最快的代码是不需要运行的代码。同样,最快的编译代码是不需要编译的代码。WebAssembly代码缓存是Chrome和V8中的一种新型优化,通过缓存编译器生成的原生代码来避免代码编译。我们之前已经写过关于如何Chrome和V8缓存JavaScript代码的内容,以及利用这种优化的最佳实践。在这篇博客文章中,我们将描述Chrome的WebAssembly代码缓存的工作原理,并说明开发者如何利用它来加速加载具有大型WebAssembly模块的应用程序。

V8 发布 v7.5

· 阅读需 5 分钟
Dan Elphick,被弃用功能的克星

每隔六周,我们会根据 发布流程 创建一个新的 V8 分支。每个版本都在 Chrome Beta 里程碑之前直接从 V8 的 Git 主分支中分出。今天我们很高兴地宣布最新的分支,V8 版本 7.5,它将在几个星期后与 Chrome 75 的稳定版一同发布。在此期间处于 Beta 阶段。V8 v7.5 包含了丰富多样的开发者友好功能。本文提前展示了一些亮点功能,敬请期待正式发布。

更快且功能更丰富的国际化 API

· 阅读需 5 分钟
[சத்யா குணசேகரன் (Sathya Gunasekaran)](https://twitter.com/_gsathya)

ECMAScript 国际化 API 规范 (ECMA-402,或 Intl) 提供了关键的区域特定功能,如日期格式化、数字格式化、复数形式选择和排序。Chrome V8 和 Google 国际化团队一直在合作,为 V8 的 ECMA-402 实现添加功能,同时清理技术债务并改善性能和与其他浏览器的互操作性。

与Spectre的一年:V8的视角

· 阅读需 10 分钟
Ben L. Titzer 与 Jaroslav Sevcik

2018年1月3日,Google Project Zero及其他团队披露了一类新的CPU漏洞统称为SpectreMeltdown。利用CPU的预测执行机制,攻击者可以暂时绕过代码中的隐式和显式安全检查,从而读取内存中未经授权的数据。尽管预测执行设计为微架构细节,原本应该在架构层面不可见,但精心构造的程序可以在预测过程中读取未经授权的信息,并通过诸如程序片段的执行时间这样的侧信道将其泄露。

极快的解析,第2部分:惰性解析

· 阅读需 16 分钟
Toon Verwaest ([@tverwaes](https://twitter.com/tverwaes)) 和 Marja Hölttä ([@marjakh](https://twitter.com/marjakh)),精简解析器

这是我们系列文章的第二部分,解释了 V8 如何以尽可能快的速度解析 JavaScript。第一部分解释了我们如何让 V8 的扫描器变得快速。

解析是将源代码转换为中间表示以供编译器(在 V8 中是字节码编译器 Ignition)使用的步骤。解析和编译发生在网页启动的关键路径上,而并非所有传递给浏览器的函数都会在启动过程中立即需要。尽管开发人员可以通过异步和延迟脚本推迟这类代码,但这并不总是可行的。此外,许多网页会传递仅用于某些特性的代码,而这些特性在单次运行页面时用户可能根本不会访问。

JavaScript开发者的代码缓存

· 阅读需 16 分钟
[Leszek Swirski](https://twitter.com/leszekswirski),缓存破坏者

代码缓存(也称为字节码缓存)是浏览器中的一个重要优化。它通过缓存解析和编译的结果来减少经常访问的网站的启动时间。大多数主流 浏览器都实现了某种形式的代码缓存,而Chrome也不例外。事实上,我们过去曾撰写 讨论过Chrome和V8是如何缓存已编译代码的。