關於 Node.js 的 Hash flooding 漏洞問題…
今年七月初,Node.js 發佈了一個安全更新,針對所有當前維護的分支來解決 Hash flooding 漏洞問題。這項臨時修復以顯著降低啟動性能為代價。同時,V8 已實施了一項解決方案,可以避免性能下降。
今年七月初,Node.js 發佈了一個安全更新,針對所有當前維護的分支來解決 Hash flooding 漏洞問題。這項臨時修復以顯著降低啟動性能為代價。同時,V8 已實施了一項解決方案,可以避免性能下降。
今天,我們欣然宣佈 V8 v5.9 的新 JavaScript 執行管線正式上線,並將隨 v59 版 Chrome 穩定版發布。透過新管線,我們在現實世界中的 JavaScript 應用程序實現了顯著的性能提升和記憶體節省。文末我們會更詳細地討論相關數字,但首先讓我們來了解一下這個管線本身。
JavaScript 基準測試的歷史是一個不斷演變的故事。隨著網頁從簡單的文檔擴展到動態的客戶端應用,新的 JavaScript 基準測試被創建以衡量新用例中重要的工作負載。這種不斷變化導致了各個基準測試有限的壽命。隨著網頁瀏覽器和虛擬機 (VM) 實現開始對特定的測試用例進行過度優化,基準測試本身停止成為其原始用途的有效代理工具。最早的 JavaScript 基準測試之一 SunSpider,在早期推動了快速優化編譯器的推出。然而,隨著 VM 工程師揭示了 微基準測試的局限性 並找到新的方法去 優化 繞過 SunSpider 的 局限性,瀏覽器社區 正式退役 SunSpider 作為推薦基準測試。
for
-in
是許多框架中廣泛使用的語言特性。儘管它的廣泛應用,從實現角度來看,它卻是較為晦澀的語言構造之一。V8 為了讓這個特性儘可能快付出了極大的努力。在過去的一年中,for
-in
在符合規範的同時變得最多快了三倍,這取決於使用的上下文。
V8 團隊目前正在開發新的預設編譯器管線,此舉將幫助我們為實際情況下的 JavaScript帶來未來的加速性能。您今天即可在 Chrome Canary 中預覽新的管線,幫助我們確保在向所有 Chrome 頻道發布新配置時不會有意外發生。