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 )关注我们。
评论