Node 12 值得关注的新特性
前言
时隔一年,Node.js 12 如约而至,正式发布第一个 Current 版本。
该版本带来了诸如:
- V8 更新带来好多不错的特性。
- HTTP 解析速度提升。
- 启动速度大幅提升。
- 更好的诊断报告和堆分析工具。
- ESM 模块更新。
原文地址:https://medium.com/@nodejs/introducing-node-js-12-76c41a1b3f3f
相关文章:Node.js 10 值得关注的新特性
LTS vs Current
如果你不了解 Node.js 的 Long Term Support 发布策略的话,一定要看看 https://github.com/nodejs/Release 。
就目前而言,Node.js 6.x 和 8.x 将在 2019 年末结束 LTS 的支持,大家尽快升级到 10.x 吧。
快速体验
$ nvs add node/
$ nvs use
$ node -v
v12.0.0
具体参考这篇文章:科普文:使用 nvs 管理本地 Node.js 版本
V8 更新到 7.4
本次版本更新,也带来了好几个不错的特性:
同时,跑了下我们 Egg 的一些内部测试,发现序列化有 10~20% 的性能提升,恐怖如斯!
另,奇丑无比的 Private Class Fields 也能用了:
class IncreasingCounter {
#count = ; 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
开启。同时基于上一条的介绍,启动的速度也得到大幅提升。
相关介绍:https://medium.com/@Trott/using-worker-threads-in-node-js-80494136dbb6
诊断报告
提供了新的实验性功能『诊断报告』,一个非常有用的特性。
可用于帮助分析诸如:崩溃,性能问题,内存泄漏,高 CPU 占用等等问题。详见 这篇文章。
Heap Dump
以前我们分析问题的时候,需要手动安装对应的类库或者使用 AliNode。
在 12.x 里面内置了该功能,详见:
同时,由于上述提到的 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,详细参见这篇文章。
不过目前 node-gyp 的一些原生模块会编译失败:
nunjucks@3.2. › chokidar@2.1. › fsevents@^1.2. optional error: Error: Run "sh -c node install" error, exit code
at ChildProcess.<anonymous> (/Users/tz/.npm-global/lib/node_modules/tnpm/node_modules/_runscript@1.3.@runscript/index.js::)
at ChildProcess.emit (events.js::)
at maybeClose (internal/child_process.js::)
at Process.ChildProcess._handle.onexit (internal/child_process.js::)
本文摘抄至:Egg.js 团队 https://www.yuque.com/egg/nodejs/nodejs-12
若有侵权及时联系。
Node 12 值得关注的新特性的更多相关文章
- Atitit python3.0 3.3 3.5 3.6 新特性 Python2.7新特性1Python 3_x 新特性1python3.4新特性1python3.5新特性1值得关注的新特性1Pyth
Atitit python3.0 3.3 3.5 3.6 新特性 Python2.7新特性1 Python 3_x 新特性1 python3.4新特性1 python3.5新特性1 值得关注的新特性1 ...
- C# 8.0的三个值得关注的新特性
本文翻译自:https://dzone.com/articles/3-new-c-8-features-we-are-excited-about 转载请注明出自:葡萄城官网,葡萄城为开发者提供专业的开 ...
- java 11 值得关注的新特性
JEP 181: Nest-Based Access Control 基于嵌套的访问控制 JEP 309: Dynamic Class-File Constants 动态类文件 JEP 315: Im ...
- Java1.0-1.12各个版本的新特性
JDK Version 1.0 1996-01-23 Oak(橡树) 初代版本,伟大的一个里程碑,但是是纯解释运行,使用外挂JIT,性能比较差,运行速度慢. JDK Version 1.1 1997- ...
- Swift 2.0初探:值得注意的新特性
转眼间,Swift已经一岁多了,这门新鲜.语法时尚.类型安全.执行速度更快的语言已经渐渐的深入广大开发者的心.我同样也是非常喜爱这门新的编程语言. 今年6月,一年一度的WWDC大会如期而至,在大会上A ...
- PHP 7 值得期待的新特性(下)
这是我们期待已久的 PHP 7 系列文章的第二篇.点此阅读 第一篇本文系 OneAPM 工程师编译整理. 也许你已经知道,重头戏 PHP 7 的发布将在今年到来!现在,让我们来了解一下,新版本有哪些新 ...
- PHP 7 值得期待的新特性(上)
这是我们期待已久的 PHP 7 系列文章的第一篇. 或许你已经知道了,我在 PHP 5.0.0 时间轴 提的 RFC (Request For Comments)通过了, PHP 7 成为 PHP 下 ...
- odi 12.2.1.1新特性
ODI 12.2.1.1现在已经发布,也可以OTN上下载,主要变化: Hyperion Essbase and Hyperion Planning 知识模块 Hyperion Essbase and ...
- C++17中那些值得关注的特性(上)
C++17标准在2017上半年已经讨论确定,正在形成ISO标准文档,今年晚些时候会正式发布.本文将介绍最新标准中值得开发者关注的新特新和基本用法. 总的来说C++17相比C++11的新特性来说新特性不 ...
随机推荐
- [luogu]P2279 [HNOI2003]消防局的设立[贪心]
[luogu]P2279 [HNOI2003]消防局的设立 题目描述 2020年,人类在火星上建立了一个庞大的基地群,总共有n个基地.起初为了节约材料,人类只修建了n-1条道路来连接这些基地,并且每两 ...
- 【CF1252F】Regular Forestation(重心,树同构)
题意:给定一棵n个点的树,问删去某个点之后所有的树同构,这样分割出来的树最多能有几棵 n<=4000 思路:分割成至少两个size相等的联通块之后size必定小于n/2,与树的重心的定义相同 预 ...
- 【PowerOJ1754&网络流24题】负载平衡问题(费用流)
题意: 思路: [问题分析] 转化为供求平衡问题,用最小费用最大流解决. [建模方法] 首先求出所有仓库存货量平均值,设第i个仓库的盈余量为A[i],A[i] = 第i个仓库原有存货量 - 平均存货量 ...
- B. Equal Rectangles
B. Equal Rectangles 给定4*N个数,是否能构成N个矩形 面积均相等 每次取两个大的,两个小的 #include<bits/stdc++.h> using namespa ...
- Oracle update或alter表被锁住的问题
\\ 查询被锁的对象.来源.sid和serial select object_name, machine, s.sid, s.serial# from v$locked_object l, dba_o ...
- RHEL6 kernel bug在hadoop上的测试
最近给hadoop集群升级了RHEL6,发现性能比之前的差了不少.发现淘宝内核组发现并解决了这个问题 原文链接:http://blog.donghao.org/2013/03/20/hadoop%E9 ...
- 微信小程序 form 组件
表单组件:将组件内用户输入的 <switch> <input> <checkbox> <slider> <radio> <picker ...
- CAS-4.2.7接入REST登录认证,移动端、C/S端登录解决方案
一.发送GET请求获取RSA公钥和JSESSIONID 请求地址:/cas/login,请求类型:GET curl -I http://cas.gfstack.geo:8080/cas/login 返 ...
- 洛谷P4317 花(fa)神的数论题(数位dp解法)
日常废话: 完了高一开学第二天作业就写不完了药丸(其实第一天就写不完了) 传传传传传送 显然爆搜肯定过不了这道题但是有60分 我们注意到在[1,n]中,有着相同的1的个数的数有很多.若有x个数有i个1 ...
- 10.6 Comment Syntax
w https://dev.mysql.com/doc/refman/5.7/en/comments.html MySQL 5.7 Reference Manual / Language Stru ...