時隔一年,Node.js 12 如約而至,正式發佈第一個 Current 版本。javascript
該版本帶來了諸如:html
原文地址:https://medium.com/@nodejs/introducing-node-js-12-76c41a1b3f3fjava
相關文章:Node.js 10 值得關注的新特性node
若是你不瞭解 Node.js 的 Long Term Support 發佈策略的話,必定要看看 https://github.com/nodejs/Release 。git
就目前而言,Node.js 6.x 和 8.x 將在 2019 年底結束 LTS 的支持,你們儘快升級到 10.x 吧。github
$ nvs add node/12 $ nvs use 12 $ node -v v12.0.0
具體參考這篇文章:科普文:使用 nvs 管理本地 Node.js 版本npm
本次版本更新,也帶來了好幾個不錯的特性:api
同時,跑了下咱們 Egg 的一些內部測試,發現序列化有 10~20% 的性能提高,恐怖如斯!緩存
另,奇醜無比的 Private Class Fields 也能用了:安全
class IncreasingCounter { #count = 0; get value() { console.log('Getting the current value!'); return this.#count; } increment() { this.#count++; } }
默認的 HTTP 解析器切換爲 llhttp ,性能提高恐怖如斯:
經過 v8 code cache 的支持,在構建時提早爲內置庫生成代碼緩存,從而提高 30% 的啓動耗時。
同時,經過重用主進程緩存,Workers Threads 的啓動速度提高了 60% 。
在 10.x 已經引入的 Workers Threads 特性,在 12.x 裏面默認啓用,無需使用 --experimental-worker
開啓。同時基於上一條的介紹,啓動的速度也獲得大幅提高。
相關介紹:https://medium.com/@Trott/using-worker-threads-in-node-js-80494136dbb6
提供了新的實驗性功能『診斷報告』,一個很是有用的特性。
可用於幫助分析諸如:崩潰,性能問題,內存泄漏,高 CPU 佔用等等問題。詳見 這篇文章。
之前咱們分析問題的時候,須要手動安裝對應的類庫或者使用 AliNode。
在 12.x 裏面內置了該功能,詳見:
同時,因爲上述提到的 V8 升級,如今能夠按照可用內存動態調整堆大小了。
ES6 模塊仍然還在實驗階段,不過有了新的方式,具體參見這篇文章。
GCC 6
和 glibc 2.17
,對應的操做系統 Win7 和 macOS 10,詳細參見這篇文章。不過目前 node-gyp 的一些原生模塊會編譯失敗:
nunjucks@3.2.0 › chokidar@2.1.5 › fsevents@^1.2.7 optional error: Error: Run "sh -c node install" error, exit code 1 at ChildProcess.<anonymous> (/Users/tz/.npm-global/lib/node_modules/tnpm/node_modules/_runscript@1.3.0@runscript/index.js:74:21) at ChildProcess.emit (events.js:196:13) at maybeClose (internal/child_process.js:1000:16) at Process.ChildProcess._handle.onexit (internal/child_process.js:267:5)
如有侵權及時聯繫。