跳至主要内容

極速解析,第1部分:優化掃描器

· 閱讀時間約 11 分鐘
Toon Verwaest ([@tverwaes](https://twitter.com/tverwaes)),令人震驚的優化者

要運行一個JavaScript程序,需要對源代碼文本進行處理,以便V8能夠理解它。V8首先將源代碼解析為抽象語法樹(AST),這是一組表示程序結構的物件。該AST由Ignition編譯為位元碼。這些解析和編譯階段的性能非常重要:V8在編譯完成之前無法運行代碼。在這一系列的博客文章中,我們將重點關注解析以及V8為提供極速解析器所做的工作。

V8 發佈 v7.4

· 閱讀時間約 8 分鐘
Georg Neis

每六週,我們會按照發佈流程建立一個新的 V8 分支。每個版本都從 V8 的 Git 主分支在 Chrome Beta 里程碑之前立即分支出來。今天,我們很高興宣布我們最新的分支 V8 版本 7.4,它目前處於測試階段,並將在數週內與 Chrome 74 穩定版一同發佈。V8 v7.4 充滿了各種面向開發者的精彩功能。這篇文章為即將到來的釋出提供了一些亮點預覽。

無 JIT 的 V8

· 閱讀時間約 4 分鐘
Jakob Gruber ([@schuay](https://twitter.com/schuay))

V8 v7.4 現已支援在執行期間不分配可執行記憶體的 JavaScript 執行功能。

在其預設配置中,V8 大量依賴於在執行期間分配和修改可執行記憶體的能力。例如,TurboFan 優化編譯器會針對熱 JavaScript 函式即時生成原生代碼,而多數 JavaScript 正則表達式則由 irregexp 引擎編譯成原生代碼。在執行期間創建可執行記憶體是 V8 快速的部分原因。

V8 版本發佈 v7.3

· 閱讀時間約 3 分鐘
Clemens Backes,編譯器專家

每六周,我們會根據發佈流程創建一個 V8 的新分支。每個版本均從 V8 的 Git 主分支中分出,並在 Chrome Beta 里程碑之前完成。今天我們很高興地宣布我們的最新分支,V8 版本 7.3,該版本目前處於測試版,幾周後將與 Chrome 73 穩定版同步發布。V8 v7.3 提供了許多面向開發者的精彩功能,本文將預覽部分亮點以期待其正式發佈。

垃圾話:奧里諾科垃圾回收器

· 閱讀時間約 13 分鐘
Peter ‘垃圾處理者’ Marshall ([@hooraybuffer](https://twitter.com/hooraybuffer))

在過去幾年中,V8 的垃圾回收器(GC)發生了很大的變化。奧里諾科項目將一個順序性的全程停頓垃圾回收器轉變為一個主要併行並發且具有增量回退功能的回收器。

V8 發布 v7.2

· 閱讀時間約 5 分鐘
Andreas Haas, 陷阱處理者

每六週,我們會根據 發布流程 創建一個新的 V8 分支。每個版本都在 Chrome Beta 的里程碑之前,直接從 V8 的 Git 主分支中分出。今天我們很高興地宣布我們最新的分支,V8 版本 7.2,目前處於 Beta 階段,直到幾周後與 Chrome 72 穩定版本協同發布。V8 v7.2 擁有許多面向開發者的功能。本文提供一些發布前的亮點預覽。

加速擴展元素

· 閱讀時間約 9 分鐘
Hai Dang & Georg Neis

在他於 V8 團隊的三個月實習期間,Hai Dang 專注於提升 [...array][...string][...set][...map.keys()][...map.values()] 的性能(當擴展元素位於數組字面量的開頭時)。他甚至還大幅提升了 Array.from(iterable) 的性能。本文解釋了他改進的部分詳細內容,這些更改從 V8 v7.2 開始被引入。

更快的非同步函式與 Promise

· 閱讀時間約 19 分鐘
Maya Armyanova([@Zmayski](https://twitter.com/Zmayski)),永遠處於等待狀態的預測者,以及 Benedikt Meurer([@bmeurer](https://twitter.com/bmeurer)),專業性能承諾者

JavaScript 中的非同步處理傳統上被認為速度並不特別快。更糟的是,對即時運行的 JavaScript 應用進行除錯——尤其是 Node.js 伺服器——並不容易,_特別是_涉及非同步程式時。不過幸運的是,時代正在改變。本文將探討我們如何在 V8(以及某種程度上其他 JavaScript 引擎)中優化非同步函式與 Promise,並描述我們如何改進非同步程式碼的除錯體驗。

V8 版本 v7.1

· 閱讀時間約 4 分鐘
Stephan Herhut ([@herhut](https://twitter.com/herhut)), 複製者中的複製者

每六週,我們會按照 釋出流程 創建一個新的 V8 分支。每個版本均從 V8 的 Git 主分支在 Chrome Beta 里程碑前直接分支出來。今天我們很高興地宣布我們最新的分支 V8 版本 7.1,目前處於 Beta 階段,幾週後將與 Chrome 71 穩定版協同釋出。V8 v7.1 為開發者帶來了各種令人期待的功能。本篇文章提前預覽了一些重要亮點,敬請期待正式釋出。

V8 版本 v7.0

· 閱讀時間約 3 分鐘
Michael Hablich

每六週,我們會根據 發布流程 建立 V8 的一個新分支。每個版本都是在 Chrome Beta 基準點之前,從 V8 的 Git 主分支分出來的。今天,我們很高興地宣布我們的最新分支,V8 版本 7.0,該版本將處於 Beta 階段,直到幾週後隨著 Chrome 70 穩定版一起發布。V8 v7.0 包含各種面向開發者的實用功能。本篇文章將提前預覽一些亮點功能,供大家期待發布。