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