Node.js v7.6 发布要点说明
Posted Node全栈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node.js v7.6 发布要点说明相关的知识,希望对你有一定的参考价值。
Node.js v7.6 发布说明
要点
集成v8 5.5版本
支持async函数,再也不用加flag才能运行了
性能提升,尤其是内存,最多35%的提升
在v8 5.7对async函数的优化会有4倍以上的提高
Node.js v7.6发布说明
This release contains v8 5.5
最重要的一条就是它包含了v8 5.5版本,也就是说v8 5.5支持的async函数和性能优化,在Node.js平台上可以受益。
其他内容,变化不大
deps:
update V8 to 5.5 (Michaël Zasso)
upgrade libuv to 1.11.0 (cjihrig)
add node-inspect 1.10.4 (Jan Krems)
upgrade zlib to 1.2.11 (Sam Roberts)
lib: build
node inspect
intonode
(Anna Henningsen)crypto: Remove expired certs from CNNIC whitelist (Shigeki Ohtsu)
inspector: add --inspect-brk (Josh Gavant)
fs: allow WHATWG URL objects as paths (James M Snell)
src: support UTF-8 in compiled-in JS source files (Ben Noordhuis)
url: extend url.format to support WHATWG URL (James M Snell)
v8 5.5版本
其实v8 5.5版本在去年10月份就发布了,只是Node.js一直没有升级上去,终于在Node.js v7.6里落地了,对于期望async函数和Koa 2.0正式版本的网友来说是件大事儿。
Async 函数
在v5.5版本中, V8 搭载了 javascript ES2017 里的async 函数, 它让编写和创建Promise更加简单。 使用async函数, 可以通过输入await关键字来等待Promise的resolve,并且如果返回值是可以同步的就会直接赋值-不在需要callback了。可以翻墙看看这篇
下面给出一个例子,通过fetch一个URL返回response文本,这是一个典型的异步的,基于Promise风格的写法。
function logFetch(url) { return fetch(url) .then(response => response.text()) .then(text => { console.log(text); }).catch(err => { console.error('fetch failed', err); });
}
下面给出使用async函数重写的代码,移除了callback:
async function logFetch(url) { try { const response = await fetch(url); console.log(await response.text()); } catch (err) { console.log('fetch failed', err); }
}
如果对Node.js异步流程不熟悉,可以看看
性能提升
V8 5.5 说明了在内存上提升的几个关键点。
内存消耗是JavaScript虚拟机性能衡量中的一个重要的维度,过去的几个发布中,V8小组通过分析并且为很多被认为是现代web开发模式代表的网站显著的减少了内存。V8 5.5 在内存较小的设备上减少的Chrome内存全部消耗多支35%(说明:和Chrome 53里的 V8 5.3比较的), 较少主要是在V8堆大小和zone memory上使用。其他设备部分也得益于zone memory减少。具体翻墙请看http://v8project.blogspot.jp/2016/10/fall-cleaning-optimizing-v8-memory.html
堆大小比较结果
zone memory比较结果
据菜神说
v7.6 v8 做了挺多优化的,try-catch 的 disabled optimization 标记都没有了
像这种。[disabled optimization for 0xbac086743c9 <SharedFunctionInfo resolvePromise>, reason: TryCatchStatement]
配了台 hackintosh,i7 7700k,测试跑分刚刚的,以前一个 npm test 要 7s,现在 1s
然而v8在2017年2月份已经发布5.7了, async/await 能有个4倍左右的提升,V8团队还是非常给力的。毫无疑问,在性能和生态环境上都非常棒,Node.js未来发展会越来越好
详见
如果想深入沟通,获取最新消息,欢迎参加狼叔的小密圈
如果想参与评论,请点击阅读原文链接,进入国内最专业的cnode论坛
你身边如果有朋友对Node.js或全栈感兴趣,可以转发给他们看看哦,O(∩_∩)O先谢过
以上是关于Node.js v7.6 发布要点说明的主要内容,如果未能解决你的问题,请参考以下文章