写点什么

Node.js v8.0.0 带来了哪些主要新特性

  • 2017-06-01
  • 本文字数:1190 字

    阅读完需:约 4 分钟

Node.js 于 5 月 30 号在其官方博客上发布了 Node.js v8.0.0 。这一版本将成为当前的长期维护版本,从 2017 年 10 月开始到 2019 年 12 月 31 号。而 Node.js v6.0.0 将会在 2018 年 4 月进入维护模式,并于 2019 年 4 月结束。

最新发布的版本代号为 Carbon,带来了很多重要的特性改进和一些全新的特性。

引入 async_hooks 模块

新引入实验性模块 async_hooks(之前叫作 async_wrap),它包含了一组用于诊断的 API,开发人员可以用它监控 Node.js 事件循环里的各种操作,跟踪句柄对象全生命周期的事件。可以通过该模块的 createHooks 方法注册用于处理句柄对象生命周期各个阶段事件的函数。

复制代码
const asyncHooks = require('async_hooks')
asyncHooks.createHooks({
init,
pre,
post,
destroy
})

更多关于这个新模块的内容可以查看文档和它的开发进度情况。

引入N-API

Node.js API(N-API)为开发人员提供了一组新的实验性 API,用于开发原生插件。它独立于底层的 JavaScript 运行时,并作为 Node.js 的一部分进行维护。引入 N-API 的主要目的是提供一套与虚拟机无关的应用二进制接口(ABA),这样插件只要编译一次就可以运行在各种版本的 Node.js 上,甚至包括来自其他公司的虚拟机,比如微软的 Chakra Core。

N-API 也是一个实验特性,更多有关 N-API 的信息可以参考官方文档。开发人员现在就可以使用这套API,并可以提供反馈以便更好地改进API。

Buffer 安全性的改进

在 v8.0.0 之前,Buffer 是通过 new Buffer(num) 方法来分配的,并没有使用零值来初始化内存空间,新建的 Buffer 对象可能包含敏感数据,会导致安全问题。

不过,使用 Buffer(num) 构造函数创建出来的对象对性能有一点影响,如果开发人员更加看重性能,那么可以使用 Buffer.allocUnsafe(num) 来创建一个未初始化内存的对象。

复制代码
// 使用零值初始化过的对象
const safeBuffer1 = Buffer.alloc(10);
const safeBuffer2 = new Buffer(10);
// 未初始化的对象
const unsafeBuffer = Buffer.allocUnsafe(10);

升级 V8 引擎到 5.8 版本

升级 V8 引擎带来了更好的性能和更多面向开发人员的 API。V8 5.8 可以保证 ABA 兼容 5.9 和即将到来的 6.0,从而确保 Node.js 原生插件的稳定性。后续还会逐步将引擎升级到 5.9 和 6.0。

升级引擎还意味着新的编译器管道——TurboFan 和 Ignition。Ignition 是 V8 引擎的解释器,TurboFan 是优化编译器,虽然它们在之前就已存在,但把它们作为默认的组合还是首次(将在 V8 5.9 里实现)。这是一个重大的转变,将为性能带来极大的提升。

升级 npm 到 5.0.0

Node.js v8.0.0 包含了最新的 npm 5.0.0,其主要特性如下。

  • 新的标准化文件锁机制。
  • 不再需要–save,所有的安装都是默认保存的。
  • node-gyp 现在支持 Windows。
  • 新的发布包含 SHA512 和 SHA1 校验和检查。

更多有关 npm 5.0.0 的新特性可以参考npm 的文档

Node.js v8.0.0 还包括子进程、控制台、文件系统、流、HTTP、TLS、URL 等方面的改进。

2017-06-01 18:504575
用户头像

发布了 322 篇内容, 共 157.8 次阅读, 收获喜欢 148 次。

关注

评论

发布
暂无评论
发现更多内容

全能pdf编辑阅读 PDF Reader Pro for mac v4.0.2直装激活版

Rose

专业的现场分屏演示工具ProPresenter v7.16.2汉化版 Mac/win

Rose

OWASP API Security Top 10解读

芯盾时代

网络安全 数字化 网关 API网关

JavaScript 事件循环竟还能这样玩!

Immerse

jump desktop mac破解版 远程桌面控制 v8.10.8永久版

Rose

API接口详解及其在电子商务中的应用研究

Noah

外部磁盘弹出辅助工具 Jettison for Mac v1.8.8直装版

Rose

基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用

阿里云大数据AI技术

大数据 阿里云 大数据开发 EMR

JavaScript 事件循环竟还能这样玩!

Immerse

100页2秒?我们为什么需要这样的文档解析速度

合合技术团队

人工智能 OCR 文档解析

Downie 4 for Mac(视频下载工具)兼容14系统v4.7.16中文版

Rose

中国唯一零售企业!京东入选2024 Gartner全球供应链25强

京东零售技术

京东 供应链

专业级的音乐制谱软件Steinberg Dorico Pro for Mac中文破解版

Rose

Iris for Mac 轻松地录制屏幕、摄像头和麦克风

Rose

Keep It for Mac 功能全面、操作简单、易于使用的笔记管理工具

Rose

jprofiler(Java性能分析工具)

Rose

ODBC适配国产数据库

扬_帆_起_航

lua MySQL Gateway kong 达梦

MarsEdit for mac 支持离线管理几乎所有的博客类型

Rose

Eudic欧路词典 for Mac(英语词典翻译查询工具) v4.6.5

Rose

文献解读-遗传病-第四期|《来自印度的自称健康个体的 1029 个基因组揭示了流行且临床相关的心脏离子通道病变异》

INSVAST

基因数据分析 生信服务 遗传病测序 遗传病

融合低代码平台与软件定制的客户管理系统:加速企业数字化转型

天津汇柏科技有限公司

数字化转型 低代码开发 客户关系管理系统 软件开发定制

关于Vearch在大模型中使用的一些实践

京东零售技术

人工智能 大模型 向量数据库 企业号 6 月 PK 榜

Node.js v8.0.0 带来了哪些主要新特性_架构/框架_薛命灯_InfoQ精选文章