Google的JavaScript和WebAssembly開源引擎V8,經過了十年之後,終於迎來與名稱相同的V8版本,這個版本主要改進了引擎的效能,針對記憶體的容量以及執行速度進行最佳化,開發團隊解釋,之所以能減少記憶體用量,是因為對指標(Pointer)進行壓縮。這個版本的V8引擎將在Chrome 80穩定版中使用。

V8的堆(Heap)包含了各種項目,諸如浮點數值、字串字元、編譯程式碼和標記值(Tagged Value),標記值內容又包括了指向V8堆的指標以及小整數(Small Integer),而V8開發團隊檢視了這些標記值,發現這些值占據了大部分堆記憶體的容量。標記值與系統指標大小一樣,32位元架構就是32位元,而64位元架構便是64位元,比較32位元版本與64位元版本,每個標記值使用兩倍的堆記憶體。

由於指標的高位元可從低位元計算而來,如此便只要在堆記憶體中儲存獨特的低位元,平均就可節省40%的堆記憶體。開發團隊提到,通常要改進記憶體用量,需要拿效能當作代價,但經指標壓縮後,不只記憶體使用量獲得改進,連實際網頁執行與垃圾回收時間也同時也獲得改進。

在桌面瀏覽器,V8整體執行臉書網頁時間減少8%,垃圾回收時間減少10%,行動裝置瀏覽器執行臉書網頁,垃圾回收時間減少了17%。在CNN網站的表現,桌面瀏覽器雖然整體執行時間只減少3%,但是垃圾回收時間卻減少14%,且在行動裝置的表現更好,V8整體執行時間減少8%,而垃圾回收時間高達20%。


Advertisement

更多 iThome相關內容