企业如何选择合适的技术方案?点击看专家聊数字化转型落地过程中的困难和解决办法 了解详情
写点什么

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

  • 2019 年 4 月 24 日
  • 本文字数:1427 字

    阅读完需:约 5 分钟

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

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


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



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 上的发布文档。



2019 年 4 月 24 日 19:025585
用户头像

发布了 164 篇内容, 共 96.2 次阅读, 收获喜欢 383 次。

关注

评论

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

官方线索 | HDC.Together华为开发者大会2021

穿过生命散发芬芳

1024我在现场

ORM

六维

ORM 10月日更

数字货币交易所系统APP开发(源码搭建)

架构训练营模块一作业

Beyond Ryan

架构实战营

1万字长文高速你千万级并发架构下如何提高数据库存储性能

Java 编程 架构 面试 分布式

架构实战营-模块1-作业

无名

架构实战营

数字货币交易所系统开发内容(案例)

022云原生之Kubernetes服务

穿过生命散发芬芳

云原生 10月日更

腾讯云 CIF 工程效能峰会完美收官

CODING DevOps

DevOps 云原生 腾讯云 CIF 峰会 开源生态 企业研发管理

数字货币交易所系统软件开发简介(搭建)

【权限专栏】谁允许你访问了?

趣链科技

区块链 权限管理

模块1

侠客行

架构实战营 「架构实战营」

营销CRM软件(销售管理工具)让客户都成为回头客

低代码小观

营销 企业 企业管理 CRM 管理系统

Map (映射) 实现

BlockQuant

map 哈希表 hash table

通过几个小程式来快速学习Java基本语法 | Java

Regan Yue

Java 10月日更

研究表明到2025年多接入边缘云市场规模将稳步增长

浪潮云

云计算运维

数字货币交易所系统APP开发源码搭建

k8s集群安装经历

追风少年

k8s kubenetes

如何应对职场焦虑?

石云升

焦虑 职场经验 10月日更

21. 合并两个有序链表(链表)

黄敏

知识计算:华为云要给AI时代开一扇门

脑极体

深空时代来临,探日究竟有何魔力?

脑极体

百度人脸采集SDK通过CFCA权威安全测评

百度大脑

人工智能 人脸

百度大脑DuMix AR赋能中国人寿财产保险,助力车险定损场景数字化转型

百度大脑

人工智能 百度

百万大数据5期-BSM-01课作业

Clarke

Android 音视频采集那些事

声网

音视频

JavaScript对象创建的 6 种模式

devpoint

工厂模式 原型链 构造函数 JavaScrip 10月日更

自定义 View:Bitmap和Drawable

Changing Lin

10月日更

再次捕获云上在野容器攻击,TeamTNT黑产攻击方法揭秘

腾讯安全云鼎实验室

容器 云安全

[架构实战营]模块一作业:微信业务架构与学生管理系统

Geek_99eefd

架构实战营 「架构实战营」

Node.js 12发布!更快启动速度、默认TLS 1.3_前端_Michael Dawson_InfoQ精选文章