跳至主要内容

V8 發佈 v5.7

· 閱讀時間約 3 分鐘
V8 團隊

每隔六周,我們會根據發佈流程創建 V8 的新分支。每個版本都從 V8 的 Git 主分支立即分支,恰逢 Chrome Beta 的里程碑。今天,我們很高興宣布最新的分支,V8 版本 5.7,這個版本將進行 Beta 測試,直到幾周後與 Chrome 57 穩定版同步發佈為止。V8 5.7 包含各種面向開發者的精彩功能。我們希望提前為您預覽一些亮點。

性能改進

原生 async 函數與 promises 一樣快

Async 函數的性能現在與使用 promises 寫成的代碼相當。我們的微基準測試顯示,async 函數的執行性能提高了四倍。同一時期,promise 的整體性能也提高了一倍。

V8 在 Linux x64 上的 async 性能改進

持續改進 ES2015

V8 繼續提高 ES2015 語言功能的速度,讓開發者可以使用新功能而不需承受性能成本。展開運算符、解構賦值和生成器現在的性能幾乎與其簡單的 ES5 等效物相同

RegExp 快速提升 15%

將 RegExp 函數從自託管的 JavaScript 實現遷移到集成 TurboFan 的代碼生成架構中,使整體 RegExp 性能提高了約 15%。詳細信息可以查看專門的博客文章

JavaScript 語言功能

這個版本包含 ECMAScript 標準庫的幾個最近新增項目。兩個 String 方法,padStartpadEnd,提供了有用的字符串格式功能,而 Intl.DateTimeFormat.prototype.formatToParts 則讓開發者能以地區化的方式自定義日期/時間格式。

啟用 WebAssembly

Chrome 57(包含 V8 v5.7)將是首次預設啟用 WebAssembly 的版本。更多細節請參閱 webassembly.org 的入門文檔以及 MDN 上的 API 文檔。

V8 API 增強

請查看我們的API 變更總結。此文檔會在每次主要發佈後幾周內定期更新。有活動 V8 檢出的開發者可以使用 git checkout -b 5.7 -t branch-heads/5.7 來試用 V8 v5.7 的新功能,或者您可以訂閱 Chrome的 Beta 測試版頻道,很快自己試用這些新功能。

PromiseHook

此 C++ API 允許用戶實現追踪 promises 整個生命周期的概述代碼。這啟用了 Node 即將推出的 AsyncHook API,它讓您能構建異步上下文傳播

PromiseHook API 提供四個生命周期鉤子:初始化(init)、解析(resolve)、前置(before)和後置(after)。初始化鉤子在創建新 promise 時運行;解析鉤子在 promise 被解析時運行;前置和後置鉤子則分別在 PromiseReactionJob 執行之前和之後運行。更多信息請查閱追踪問題設計文檔