在 V8 中實現排序
Array.prototype.sort
是 V8 中以自託管 JavaScript 實現的最後一個內建函數之一。重構它使我們有機會嘗試不同的算法和實現策略,並最終在 V8 v7.0 / Chrome 70 中使其穩定。
Array.prototype.sort
是 V8 中以自託管 JavaScript 實現的最後一個內建函數之一。重構它使我們有機會嘗試不同的算法和實現策略,並最終在 V8 v7.0 / Chrome 70 中使其穩定。
DataView
是 JavaScript 中進行低層記憶體訪問的兩種途徑之一,另一種是 TypedArray
。直到現在,DataView
在 V8 中的優化程度遠低於 TypedArray
,導致在圖形密集型工作負載或編解碼二進制數據等任務中性能偏低。這些原因主要是歷史選擇,例如 asm.js 選擇了 TypedArray
而非 DataView
,因此引擎專注於提升 TypedArray
的性能。
本月是 Google Chrome 和 V8 專案發布的十週年。本文章提供 V8 專案在過去十年以及更早尚未公開時期的重要里程碑概述。
V8 v6.9 包含了一個名為 Liftoff 的全新基線編譯器,用於 WebAssembly。Liftoff 現已在桌面系統上預設啟用。本文詳細介紹了新增另一編譯層的動機,並描述了 Liftoff 的實現方式及其性能表現。
V8 的內建函數 (builtins) 在每個 V8 實例中消耗記憶體。內建函數的數量、平均大小以及每個 Chrome 瀏覽器分頁的 V8 實例數量顯著增加。本文介紹了我們如何在過去一年內將每個網站的V8堆積大小中位數減少了19%。
本文介紹了一種稱為_並行標記_的垃圾回收技術。此優化使 JavaScript 應用程式能在垃圾回收器掃描堆進行標記存活物件時繼續執行。基準測試顯示,並行標記可將主執行緒上的標記時間減少60%–70%。並行標記是Orinoco專案的最後一塊拼圖——該專案旨在逐步將舊的垃圾回收器替換為新的大部分並行和平行垃圾回收器。並行標記在 Chrome 64 和 Node.js v10中為預設啟用。