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

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

内容简介:今天,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


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

查看所有标签

猜你喜欢:

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

编写高质量代码:改善Python程序的91个建议

编写高质量代码:改善Python程序的91个建议

张颖、赖勇浩 / 机械工业出版社 / 2014-6 / 59.00元

在通往“Python技术殿堂”的路上,本书将为你编写健壮、优雅、高质量的Python代码提供切实帮助!内容全部由Python编码的最佳实践组成,从基本原则、惯用法、语法、库、设计模式、内部机制、开发工具和性能优化8个方面深入探讨了编写高质量Python代码的技巧与禁忌,一共总结出91条宝贵的建议。每条建议对应Python程序员可能会遇到的一个问题。本书不仅以建议的方式从正反两方面给出了被实践证明为......一起来看看 《编写高质量代码:改善Python程序的91个建议》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

SHA 加密
SHA 加密

SHA 加密工具