Chrome 的一小步,V8 的一大堆
V8 對其堆大小有硬性限制。這充當了防止有記憶體洩漏的應用程序的保險機制。當應用程序達到此硬性限制時,V8 會執行一系列最後的垃圾回收。如果垃圾回收無法釋放記憶體,V8 停止執行並報告記憶體不足錯誤。沒有硬性限制的話,有記憶體洩漏的應用程序可能耗盡所有系統記憶體,損害其他應用程序的效能。
V8 對其堆大小有硬性限制。這充當了防止有記憶體洩漏的應用程序的保險機制。當應用程序達到此硬性限制時,V8 會執行一系列最後的垃圾回收。如果垃圾回收無法釋放記憶體,V8 停止執行並報告記憶體不足錯誤。沒有硬性限制的話,有記憶體洩漏的應用程序可能耗盡所有系統記憶體,損害其他應用程序的效能。
這篇博客文章涉及 V8 最近將 RegExp 的內建函數從一個自託管的 JavaScript 實現遷移到直接掛接到我們基於 TurboFan 的新代碼生成架構上。
過去一年中,V8 團隊開發了一種新方法來衡量和理解真實世界中的 JavaScript 性能。我們使用從這個方法中獲得的洞察來改變 V8 團隊提高 JavaScript 性能的方式。我們的新方法對真實世界的關注代表著我們從傳統性能重點的一個重大轉變。我們相信,隨著我們在 2017 年繼續應用此方法,它將顯著提高用戶和開發者對 V8 在 Chrome 和 Node.js 中提供可預測性能的依賴能力。
Node.js 的受歡迎程度在過去幾年中穩步增長,我們一直致力於讓 Node.js 表現得更好。本篇文章突顯了在 V8 和 DevTools 中的一些近期努力。
您現在可以使用 Chrome 開發者工具調試 Node 應用程式。Chrome DevTools 團隊將實現調試協議的源代碼從 Chromium 移至 V8,從而使 Node Core 更容易保持調試器的源代码和依賴項的最新狀態。其他瀏覽器供應商和 IDE 也使用 Chrome 調試協議,共同改善開發者在使用 Node 時的體驗。
今天我們很高興能與 Firefox 和 Edge 同時宣布 WebAssembly 瀏覽器預覽。WebAssembly 或 Wasm 是一種由 Google、Mozilla、Microsoft、Apple 和 W3C WebAssembly 社群組 的協作者設計的新型網頁運行時和編譯目標。
記憶體使用是 JavaScript 虛擬機性能權衡空間中的重要維度。在過去幾個月中,V8 團隊分析並顯著減少了若干被認為是現代網頁開發模式代表性網站的記憶體佔用量。在這篇博客中,我們呈現了分析所使用的工作負載和工具,概述了垃圾回收器中的記憶體優化,並展示了我們如何減少 V8 解析器及其編譯器所使用的記憶體。
每隔六週,我們會根據 發佈流程 的一部分創建新的 V8 分支。每次新版本都從 V8 的 Git 主版分支中分支出,時間在 Chrome Beta 的里程碑前夕。今天我們很高興宣佈最新的分支 V8 version 5.4,此版本將進入 beta 測試階段,直到幾週後與 Chrome 54 Stable 一同發佈。V8 v5.4 包含各種面向開發者的功能亮點,以下是一些主要改進的預覽。