Node.js基金會發布了Node.js平臺第7版,其中包括了5.4版的V8 JavaScript引擎。
Node.js核心模塊(Core)開發團隊成員James Snell指出,第7版在對可靠性和性能做了改進之外,還實現了對98%的ES6語言特性的覆蓋。第7版使用了實驗性的新URL解析器,該解析器基于WHATWG URL解析規范,使得Node.js不但具有和瀏覽器一樣的解析行為,而且給出了改進的HTTP 1.1規范符合,將可實現更好的輸入驗證和安全強化,以及未來對HTTP/2的支持。
Node.js核心模塊技術及合作者委員會(Core Technical & Collaborators Committee)成員Myles Borins告訴InfoQ:
為確保Node.js環境可以滿足用戶的需求,我們正致力于使Node.js最有效地響應并適應新的語言特性,這并非易事。在討論中的關鍵特性包括:Promise(使Promise兼容Node.js調試,以及使Node.js API兼容于Promise)、實現async/await、支持ES6模塊規范等。
在該過程中,為確保新的JavaScript語言特性滿足Node.js用戶的需求,Node.js項目組保持著和TC-39委員會的合作。
Google工程師Michael Hablich在博客文章“V8引擎5.4版”中指出,V8 5.4版的性能改進與在內存占用和啟動速度上所做的關鍵更新有關。
“V8 JavaScript解析引擎對內存管理做了簡化,避免了不必要的內存分配,使得堆外內存使用峰值降低了近20%。這種內存節省可以有效地降低大型腳本的內存使用,其中包括asm.js應用。”Hablich說。
V8 API上的更新還包括:無需原型創建v8::Function的功能,提供了一種便利的數組緩存分配機制。
由于Node.js第7版使用了V8 5.4版,有人指出為避免插件加載時出現運行時錯誤,需要重新編譯已有的原生插件。開發人員應該使用npm做重新編譯,或完全刪除node_modules后用npm從零開始安裝。
作為Node的檢查點版本,第7版對Node.js的影響遠沒有LTS版那樣的深遠。Node.js技術指導委員會主席Rod Vagg說,第7版的主要關注點在于“確保生態系統中的模塊與Node核心模塊間的一致”。
Node.js第8版計劃將于2017年4月發布,對第7版的支持將持續至2017年6月,而第6版將會繼續處于“活躍的LTS”和“維護”模式直至2019年。
對于那些工作于復雜生產環境中并具有穩定性需求的開發人員,Node.js基金會希望他們繼續停留在第6版上。而對于能在不影響現有環境的條件下方便快速地升級版本的開發人員,歡迎升級到第7版。
查看英文原文:NodeJS v7 Upgrades to V8 5.4