Node.js v8.0.0正式發(fā)布!看看帶來了哪些主要新特性
前言
Node.js于5月30號(hào)在其官方博客上發(fā)布了Node.js v8.0.0。這一版本將成為當(dāng)前的長(zhǎng)期維護(hù)版本,從2017年10月開始到2019年12月31號(hào)。而Node.js v6.0.0將會(huì)在2018年4月進(jìn)入維護(hù)模式,并于2019年4月結(jié)束。
最新發(fā)布的版本代號(hào)為Carbon,帶來了很多重要的特性改進(jìn)和一些全新的特性。
引入async_hooks模塊
新引入實(shí)驗(yàn)性模塊async_hooks(之前叫作async_wrap),它包含了一組用于診斷的API,開發(fā)人員可以用它監(jiān)控Node.js事件循環(huán)里的各種操作,跟蹤句柄對(duì)象全生命周期的事件。可以通過該模塊的createHooks方法注冊(cè)用于處理句柄對(duì)象生命周期各個(gè)階段事件的函數(shù)。
const asyncHooks = require('async_hooks')
asyncHooks.createHooks({
init,
pre,
post,
destroy
})
更多關(guān)于這個(gè)新模塊的內(nèi)容可以查看文檔和它的開發(fā)進(jìn)度情況。
引入N-API
Node.js API(N-API)為開發(fā)人員提供了一組新的實(shí)驗(yàn)性API,用于開發(fā)原生插件。它獨(dú)立于底層的JavaScript運(yùn)行時(shí),并作為Node.js的一部分進(jìn)行維護(hù)。引入N-API的主要目的是提供一套與虛擬機(jī)無關(guān)的應(yīng)用二進(jìn)制接口(ABA),這樣插件只要編譯一次就可以運(yùn)行在各種版本的Node.js上,甚至包括來自其他公司的虛擬機(jī),比如微軟的Chakra Core。
N-API也是一個(gè)實(shí)驗(yàn)特性,更多有關(guān)N-API的信息可以參考官方文檔。開發(fā)人員現(xiàn)在就可以使用這套API,并可以提供反饋以便更好地改進(jìn)API。
Buffer安全性的改進(jìn)
在v8.0.0之前,Buffer是通過new Buffer(num)方法來分配的,并沒有使用零值來初始化內(nèi)存空間,新建的Buffer對(duì)象可能包含敏感數(shù)據(jù),會(huì)導(dǎo)致安全問題。
不過,使用Buffer(num)構(gòu)造函數(shù)創(chuàng)建出來的對(duì)象對(duì)性能有一點(diǎn)影響,如果開發(fā)人員更加看重性能,那么可以使用Buffer.allocUnsafe(num)來創(chuàng)建一個(gè)未初始化內(nèi)存的對(duì)象。
// 使用零值初始化過的對(duì)象 const safeBuffer1 = Buffer.alloc(10); const safeBuffer2 = new Buffer(10); // 未初始化的對(duì)象 const unsafeBuffer = Buffer.allocUnsafe(10);
升級(jí)V8引擎到5.8版本
升級(jí)V8引擎帶來了更好的性能和更多面向開發(fā)人員的API。V8 5.8可以保證ABA兼容5.9和即將到來的6.0,從而確保Node.js原生插件的穩(wěn)定性。后續(xù)還會(huì)逐步將引擎升級(jí)到5.9和6.0。
升級(jí)引擎還意味著新的編譯器管道——TurboFan和Ignition。Ignition是V8引擎的解釋器,TurboFan是優(yōu)化編譯器,雖然它們?cè)谥熬鸵汛嬖冢阉鼈冏鳛槟J(rèn)的組合還是首次(將在V8 5.9里實(shí)現(xiàn))。這是一個(gè)重大的轉(zhuǎn)變,將為性能帶來極大的提升。
升級(jí)npm到5.0.0
Node.js v8.0.0包含了最新的npm 5.0.0,其主要特性如下。
- 新的標(biāo)準(zhǔn)化文件鎖機(jī)制。
- 不再需要--save,所有的安裝都是默認(rèn)保存的。
- node-gyp現(xiàn)在支持Windows。
- 新的發(fā)布包含SHA512和SHA1校驗(yàn)和檢查。
更多有關(guān)npm 5.0.0的新特性可以參考npm的文檔。
Node.js v8.0.0還包括子進(jìn)程、控制臺(tái)、文件系統(tǒng)、流、HTTP、TLS、URL等方面的改進(jìn)。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
node.js使用express-fileupload中間件實(shí)現(xiàn)文件上傳
本文使用express作為服務(wù)端,使用express-fileupload庫提供的中間件函數(shù)來接受從客戶端傳來的圖片,并將圖片作為文件存儲(chǔ)在服務(wù)端,感興趣的可以了解一下2021-07-07
win系統(tǒng)下nodejs環(huán)境安裝配置
這篇文章主要介紹了win系統(tǒng)下nodejs環(huán)境安裝配置的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
理解 Node.js 事件驅(qū)動(dòng)機(jī)制的原理
本篇文章主要介紹了理解 Node.js 事件驅(qū)動(dòng)機(jī)制的原理,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08
nodejs個(gè)人博客開發(fā)第六步 數(shù)據(jù)分頁
這篇文章主要為大家詳細(xì)介紹了nodejs個(gè)人博客開發(fā)的數(shù)據(jù)分頁,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
nodejs基于mssql模塊連接sqlserver數(shù)據(jù)庫的簡(jiǎn)單封裝操作示例
這篇文章主要介紹了nodejs基于mssql模塊連接sqlserver數(shù)據(jù)庫的簡(jiǎn)單封裝操作,結(jié)合實(shí)例形式分析了nodejs中mssql模塊的安裝與操作sqlserver數(shù)據(jù)庫相關(guān)使用技巧,需要的朋友可以參考下2018-01-01
NodeJs之word文件生成與解析的實(shí)現(xiàn)代碼
這篇文章主要介紹了NodeJs之word文件生成與解析的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
詳解node單線程實(shí)現(xiàn)高并發(fā)原理與node異步I/O
本篇文章主要介紹了node單線程實(shí)現(xiàn)高并發(fā)原理與node異步I/O ,具有一定的參考價(jià)值,有興趣的可以了解一下2017-09-09

