跳至主要内容

10 篇文章 含有標籤「基準測試」

檢視所有標籤

為 V8 加速:使用可變堆數字

· 閱讀時間約 6 分鐘
[Victor Gomes](https://twitter.com/VictorBFG),位移者

在 V8,我們不斷努力提升 JavaScript 的性能。作為這一努力的一部分,我們最近重新審視了 JetStream2 基準測試套件,以消除性能瓶頸。本篇文章詳細介紹了一項具體的優化,它使 async-fs 基準測試達到了顯著的 2.5倍 性能提升,並對整體得分帶來了可觀的增益。該優化受基準測試的啟發,但類似模式也出現在真實世界代碼中。

V8 比以往更快、更安全!

· 閱讀時間約 8 分鐘
[Victor Gomes](https://twitter.com/VictorBFG),Glühwein 專家

歡迎來到令人興奮的 V8 世界,在這裡速度不僅僅是一項功能,而是一種生活方式。當我們向 2023 年告別時,是時候慶祝 V8 今年取得的令人印象深刻的成就了。

通過創新的性能優化,V8 繼續在不斷演變的 Web 領域推進可能性的邊界。我們引入了一個新的中層編譯器,並對頂層編譯器基礎設施、運行時和垃圾回收器進行了多項改進,這些改進帶來了全方位的顯著速度提升。

加速擴展元素

· 閱讀時間約 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 中 `DataView` 性能

· 閱讀時間約 8 分鐘
Théotime Grohens, <i lang="fr">Data-Vue 的學者</i>, 以及 Benedikt Meurer ([@bmeurer](https://twitter.com/bmeurer)), 專業性能伙伴

DataView 是 JavaScript 中進行低層記憶體訪問的兩種途徑之一,另一種是 TypedArray。直到現在,DataView 在 V8 中的優化程度遠低於 TypedArray,導致在圖形密集型工作負載或編解碼二進制數據等任務中性能偏低。這些原因主要是歷史選擇,例如 asm.js 選擇了 TypedArray 而非 DataView,因此引擎專注於提升 TypedArray 的性能。

Chrome 歡迎 Speedometer 2.0!

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

自 2014 年 Speedometer 1.0 初次發布以來,Blink 和 V8 團隊一直將這個基準測試作為流行 JavaScript 框架實際使用的代理,我們在這個基準測試中取得了相當大的速度提升。我們獨立驗證了這些改進確實能轉化為實際用戶的好處,通過衡量真實世界的網站,觀察到流行網站的頁面加載時間的改進同樣提高了 Speedometer 的分數。

宣佈 Web 工具基準測試

· 閱讀時間約 6 分鐘
Benedikt Meurer ([@bmeurer](https://twitter.com/bmeurer)), JavaScript 性能專家

JavaScript 性能一直是 V8 團隊關注的焦點,在本文中,我們想討論一個最近用於識別並解決 V8 中一些性能瓶頸問題的新 JavaScript Web 工具基準測試。您可能已經知道 V8 對 Node.js 的重大承諾,這個基準測試通過專門針對基於 Node.js 的常用開發工具進行性能測試來延續這一承諾。Web 工具基準測試中的工具是開發者和設計師今天用來構建現代網站和基於雲的應用程序的同一工具。為了繼續我們專注於 實際性能 而非人工基準測試的持續努力,我們使用開發人員每天運行的實際代碼創建了這個基準測試。

優化 V8 中的 ES2015 代理

· 閱讀時間約 8 分鐘
Maya Armyanova ([@Zmayski](https://twitter.com/Zmayski)), 代理優化專家

代理自 ES2015 起便成為 JavaScript 的重要部分。它們允許攔截物件上的基本操作並自訂其行為。代理是像 jsdomComlink RPC 函式庫 等項目的核心部分。最近,我們在提升 V8 中代理的性能方面投入了大量精力。本文著重於 V8 中的一般性能改進模式以及代理的特定改進。

退休 Octane

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

JavaScript 基準測試的歷史是一個不斷演變的故事。隨著網頁從簡單的文檔擴展到動態的客戶端應用,新的 JavaScript 基準測試被創建以衡量新用例中重要的工作負載。這種不斷變化導致了各個基準測試有限的壽命。隨著網頁瀏覽器和虛擬機 (VM) 實現開始對特定的測試用例進行過度優化,基準測試本身停止成為其原始用途的有效代理工具。最早的 JavaScript 基準測試之一 SunSpider,在早期推動了快速優化編譯器的推出。然而,隨著 VM 工程師揭示了 微基準測試的局限性 並找到新的方法去 優化 繞過 SunSpider 的 局限性,瀏覽器社區 正式退役 SunSpider 作為推薦基準測試。

如何衡量 V8 的真實世界性能

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

過去一年中,V8 團隊開發了一種新方法來衡量和理解真實世界中的 JavaScript 性能。我們使用從這個方法中獲得的洞察來改變 V8 團隊提高 JavaScript 性能的方式。我們的新方法對真實世界的關注代表著我們從傳統性能重點的一個重大轉變。我們相信,隨著我們在 2017 年繼續應用此方法,它將顯著提高用戶和開發者對 V8 在 Chrome 和 Node.js 中提供可預測性能的依賴能力。