NodeJS第7版升级到V8 5.4版(32)

发布于2019-04-21 20:19:32

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


感谢冬雨对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。