【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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:504012
用户头像

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

关注

评论

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

教你如何防止数据被异常篡改,并复原数据

秃头小帅oi

程序员 前端 低代码 数据异常

Stepn跑鞋系统开发NFT跑步链游玩法

西安链酷科技

DeFi质押挖矿 DeFi流动性挖矿 运动挖矿

2023年微软开源八个人工智能项目

树上有只程序猿

人工智能 微软 开源

开源大模型驱动的智能编程与自然语言处理

百度开发者中心

nlp 大模型 LLM

Jogger慢跑者/Stepn跑鞋NFT系统开发案例

西安链酷科技

dapp开发 运动挖矿

免费获取GPT-4的五种工具

互联网工科生

人工智能 GPT-4

壹维克斯ONE WIEX质押系统开发合约技术

西安链酷科技

智能合约 DAPP系统开发

HarmonyOS设备管理开发:USB服务开发指导

HarmonyOS开发者

HarmonyOS

首个“全4K”运动会,上云!

天翼云开发者社区

云计算 大数据 云服务

NFT交易所系统开发跨链技术

西安链酷科技

交易所开发软件开发 虚拟币开发

全面预算管理,帮助企业财务团队冲破市场挑战

智达方通

全面预算管理 财务团队

详解CCE服务:一站式告警配置和云原生日志视图

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟 华为云CCE容器服

云游世界卷轴系统开发NFT技术

西安链酷科技

DeFi质押挖矿 defi开发

上海站报名启动! 2023年开源产业生态大会OpenHarmony生态分论坛

OpenHarmony开发者

OpenHarmony

Timemator for Mac(优秀的时间追踪记录工具)v3.0.4激活版下载

iMac小白

sublime text for Mac(代码编辑器)v4.0(4169)注册汉化版

iMac小白

IBM SPSS Statistics Mac(spss专业统计分析软件) v27.0.1.0中文激活版

iMac小白

卡牌类链游系统开发NFT游戏技术

西安链酷科技

链游开发 运动挖矿开发

平台工程指南:TheNewStack 发布的免费电子书

杨振涛

HashiCorp 平台工程 平台工程社区 PECommunity Platform Engineering

合约量化交易所系统开发——策略机器人

西安链酷科技

量化机器人 智能ai量化 量化交易软件

浪潮云洲基于QID技术的"师旷"前装固件成功首发

财见

Web3钱包开发:解锁未来投资利润丰厚的机会

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

Linux中tar命令的几个高级用法

这我可不懂

Linux

数字先锋| 雪域高原一朵“云”,天翼云助力青海打造省级融媒云平台

天翼云开发者社区

云计算 大数据 5G

Vue + Element UI 实现复制当前行数据功能(复制到新增页面组件值不能更新等问题解决)

EquatorCoco

Vue 前端开发 UI

Stepn跑鞋系统开发NFT链游技术

西安链酷科技

web3 链游开发

列举数据库缓存使用场景实例和命令速查表

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟

数字先锋| “翼”键上云,开启智慧医疗新时代!

天翼云开发者社区

人工智能 云计算 大数据

Red Giant Trapcode Suite for Mac(红巨星粒子插件)v2024.0.2激活版

iMac小白

Redis桌面管理工具: Redis Desktop Manager for Mac中文激活版下载

iMac小白

达芬奇调色视频剪辑软件:DaVinci Resolve Studio 18 for Mac中文正式版

iMac小白

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