Node.js 12 发布!更快启动速度、默认 TLS 1.3

栏目: Node.js · 发布时间: 6年前

内容简介:今天,Node 官方团队发布博文宣布,Node.js 12 大版本正式发布。这也是 Node 进入半年大版本发布周期后的一次常规升级。本次发布的重要特性包括:更快的启动速度、最好的默认堆内存分配,以及对 V8、TLS、llhttp 的升级。Node.js 12 将取代 v11 版本进入当前发布线(current release),并将在 2019 年 10 月发布 v13 版后成为长期支持版本(LTS)。

今天,Node 官方团队发布博文宣布,Node.js 12 大版本正式发布。这也是 Node 进入半年大版本发布周期后的一次常规升级。本次发布的重要特性包括:更快的启动速度、最好的默认堆内存分配,以及对 V8、TLS、llhttp 的升级。

Node.js 12 将取代 v11 版本进入当前发布线(current release),并将在 2019 年 10 月发布 v13 版后成为长期支持版本(LTS)。

Node.js 12 发布!更快启动速度、默认 TLS 1.3

V8 引擎升级

v12 版本中,V8 引擎从 7.2 版升级到 7.4 版,带来的重要改进包括:

  • 异步堆栈跟踪
  • 参数不匹配更快报错
  • 更快的 await
  • 更快的 JavaScript 渲染等。

默认支持 TLS 1.3

Node.js 12 将支持 TLS 1.3,并将其作为默认的传输加密协议,在需要时也可通过 CLI/NODE_OPTIONS 取消。

TLS 1.3 是 TLS 协议的重大升级,相对 TLS 1.2 有多项安全改进,你应该尽可能的用 1.3 版本取代 1.2 版。

更恰当的堆内存分配

这个特性将自动根据可用内存情况来分配 Node 的堆内存,而之前它是由 V8 根据浏览器的场景而定制的。熟悉 Node 的人可能知道,这个限制通常是 700MB 或 1400MB(分别在 32 位和 64 位系统)。更智能的分配堆内存,可用让 Node 在可用内存不多的情况下使用更少的内存,或者当内存耗尽时自主终止。

这个特性在处理大型数据集时特别有用。当然,你仍然可以像以前一样,使用 max-old-space-size 来设置需要的值。

从 http parser 迁移到 llhttp

Node.js 12 将从默认的 http 渲染器迁移到 llhttp,以前的默认 http_parser 因为代码混乱难以维护,因此 llhttp 作者另建了一个项目来继续开发,它使用 TypeScript 来编写。llhttp 从 Node 11.2 版本作为实验特性引入,现在它可正式使用了。

工作线程(Worker Threads)

工作线程在 Node.js 12 里仍然是一个实验特性,官方团队在持续的对它进行改进,现在你不用设置一个 flag 就可以使用它,并且官方团队宣称它离成为正式特性已经不远了。这个特性在 Node 社区已经被呼唤多时了,它基于 Web Worker API 封装而来,可能为我们带来线程池能力,可以更好的利用多核,Node 压榨性能的能力也将越来越强了。你可以在这里看到对 Node 工作线程的初级介绍:

https://medium.com/@Trott/using-worker-threads-in-node-js-80494136dbb6

诊断报告

Node.js 12 带来一个新的实验特性,诊断报告。它可以让你按需生成,或者在某些事件发生时生成一份报告。报告将包含可以帮助诊断诸如崩溃、性能变差、内存泄漏、高 CPU 使用率等线上问题的有效信息,下面这篇文章对其进行了介绍:

https://medium.com/the-node-js-collection/easily-identify-problems-in-node-js-applications-with-diagnostic-report-dc82370d8029

堆内存 dump

以前如果你需要将堆内存生成 dump 文件,你需要在生产环境安装一些模块,现在 Node.js 12 集成了堆内存 dump 功能,它来自 V8 对 heapdump 的支持,以及对 node-heap 模块的兼容。你可以查看文档来了解如何使用。

启动速度改进

在 Node.js 11 中主要是对热启动速度的改进,通过代码缓存方式,提升从主线程启动工作线程,或者将工作线程的缓存重用到主线程的性能,性能测试显示它提升了工作线程高达 60% 的启动速度。

在 Node.js 12 中,Node 可执行程序将在构建时为内建库生成代码缓存,并嵌入到二进制代码中,这可以让 Node 主线程的冷启动速度提升高达最多 30%,是非常值得注目的性能改进。

ES6 模块支持

Node.js 12 改进了对 ES6 模块的实验性支持,这是一项重要的改进,官方希望得到更多的开发者反馈。

现在你可以通过 Node 官网升级,更多信息可参考 Node 在 Github 上的发布文档。

Node.js 12 发布!更快启动速度、默认 TLS 1.3


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Just My Type

Just My Type

Simon Garfield / Profile Books / 2010-10-21 / GBP 14.99

What's your type? Suddenly everyone's obsessed with fonts. Whether you're enraged by Ikea's Verdanagate, want to know what the Beach Boys have in common with easy Jet or why it's okay to like Comic Sa......一起来看看 《Just My Type》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

随机密码生成器
随机密码生成器

多种字符组合密码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具