资讯专栏INFORMATION COLUMN

Node 12 值得关注的新特性

springDevBird / 1566人阅读

摘要:启动速度大幅提升。同时,通过重用主进程缓存,的启动速度提升了。在已经引入的特性,在里面默认启用,无需使用开启。相关介绍诊断报告提供了新的实验性功能诊断报告,一个非常有用的特性。升级为,增强安全功能。

前言

时隔一年,Node.js 12 如约而至,正式发布第一个 Current 版本。

该版本带来了诸如:

V8 更新带来好多不错的特性。

HTTP 解析速度提升。

启动速度大幅提升。

更好的诊断报告和堆分析工具。

ESM 模块更新。

相关资料:

原文地址:medium.com/@nodejs/int…

语雀地址:www.yuque.com/egg/nodejs/…

LTS 是什么?

如果你不了解 Node.js 的  Long Term Support 发布策略的话,一定要看看 github.com/nodejs/Rele… 。

就目前而言,Node.js 6.x 和 8.x 将在 2019 年末结束 LTS 的支持,大家尽快升级到 10.x 吧。

快速体验
$ nvs add node/12
$ nvs use 12
$ node -v
v12.0.0

具体参考这篇文章:科普文:使用 nvs 管理本地 Node.js 版本

V8 更新到 7.4

大部分情况下,我们不用去考虑性能问题,坐等 V8 版本更新就好了。(大雾)

本次版本更新,也带来了好几个不错的特性:

异步堆栈跟踪

参数调用不匹配时的调用速度优化

更快的 await

更快的 JavaScript 解析速度

同时,跑了下我们 Egg 的一些内部测试,发现序列化有 10~20% 的性能提升,恐怖如斯!

ECMAScript 新特性支持

随着 V8 的更新,很多 ES 的新规范也落地了。支持列表参见:node.green/

如奇丑无比的 Private Class Fields 也能用了:

class IncreasingCounter {
  #count = 0;
  
  get value() {
    console.log("Getting the current value!");
    return this.#count;
  }
  increment() {
    this.#count++;
  }
}

HTTP 解析速度提升

默认的 HTTP 解析器切换为 llhttp ,性能提升恐怖如斯:

点评:恐怖如斯。

启动速度提升

通过 v8 code cache 的支持,在构建时提前为内置库生成代码缓存,从而提升 30% 的启动耗时。
同时,通过重用主进程缓存,Workers Threads 的启动速度提升了 60% 。

点评:恐怖如斯。

Workers Threads

在 10.x 已经引入的 Workers Threads 特性,在 12.x 里面默认启用,无需使用 --experimental-worker 开启。同时基于上一条的介绍,启动的速度也得到大幅提升。

相关介绍:medium.com/@Trott/usin…

诊断报告

提供了新的实验性功能『诊断报告』,一个非常有用的特性。
可用于帮助分析诸如:崩溃,性能问题,内存泄漏,高 CPU 占用等等问题。详见 这篇文章。

点评:这也是 AliNode 之前的一个卖点之一。

Heap Dump

以前我们分析问题的时候,需要手动安装对应的类库或者使用 AliNode。

在 12.x 里面内置了该功能,详见:

github.com/nodejs/node…

github.com/nodejs/node…

点评:又一个 AliNode 的功能被内置了。但其实影响不大,AliNode 的核心在于分析平台,这块的采集能力,本来他们就打算开源回馈出去的。

同时,由于上述提到的 V8 升级,现在可以按照可用内存动态调整堆大小了。

ESM 模块方案更新

ES6 模块仍然还在实验阶段,不过有了新的方式,具体参见这篇文章。

点评:让子弹再飞一会,该特性真的不是痛点,不急。

其他更新

更好的原生模块支持,N-API 升级为版本 4,并 backport 到 Node.js 8.x 和 10.x。详细参见这篇文章。

TLS 升级为 1.3, 增强安全功能。

随着 C++ 编译器的更新,现在要求 GCC 6 和 glibc 2.17 ,对应的操作系统 Win7 和 macOS 10,详细参见这篇文章。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/7400.html

相关文章

  • Node12有哪些值得关注的新特性

    摘要:再之后会有个月的延长维护期。期间支持的变更严重的,严重的安全问题或者文档更新。已经成为协议的一个重大更新,并且正在积极地在上集成。此外,默认情况下已禁用和,并且库已删除已弃用的函数。 前言 时隔一年,Node.js 12 如约而至,正式发布第一个 Current 版本。它将从2019年10月开始进入长期支持(LTS)版本直到2022年4月。 该版本带来的新特性: V8 更新带来好多不...

    kaka 评论0 收藏0
  • 《阿里云前端技术周刊》第二期

    摘要:作者也树校对染陌素材也树英布阿里云前端技术周刊由阿里云智能商业中台体验技术团队整理编写。如何在工作中快速成长致工程师的个简单技巧工程师成长干货,全文提纲如下,图片来自阿里技术公众号关于我们我们是阿里云智能中台体验技术团队。 作者:@也树 校对:@染陌 素材:@也树、@英布 《阿里云前端技术周刊》由阿里云智能商业中台体验技术团队整理编写。 知乎:阿里云中台前端/全栈团队专栏 Github...

    kyanag 评论0 收藏0
  • 个人分享--web前端学习资源分享

    摘要:前言月份开始出没社区,现在差不多月了,按照工作的说法,就是差不多过了三个月的试用期,准备转正了一般来说,差不多到了转正的时候,会进行总结或者分享会议那么今天我就把看过的一些学习资源主要是博客,博文推荐分享给大家。 1.前言 6月份开始出没社区,现在差不多9月了,按照工作的说法,就是差不多过了三个月的试用期,准备转正了!一般来说,差不多到了转正的时候,会进行总结或者分享会议!那么今天我就...

    sherlock221 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<