提及Node就不得不先介紹一個Chrome V8 引擎。node
隨着Web相關技術的發展,JavaScript所要承擔的工做也愈來愈多,早就超越了「表單驗證」的範疇,這就更須要快速的解析和執行JavaScript腳本。 而JavaScript本質上是一種解釋型語言,與編譯型語言不一樣的是它須要邊執行邊解析,而編譯型語言在執行時已經完成編譯,可直接執行,有更快的執行速度。V8引擎就是爲解決這一問題而生,在node中也是採用該引擎來解析JavaScript。linux
V8引擎是一個JavaScript引擎實現,最初由一些語言方面專家設計,後被谷歌收購,隨後谷歌對其進行了開源。V8使用C++開發,,在運行JavaScript以前,相比其它的JavaScript的引擎轉換成字節碼或解釋執行,V8將其編譯成原生機器碼(IA-32, x86-64, ARM, or MIPS CPUs),而且使用瞭如內聯緩存(inline caching)等方法來提升性能。有了這些功能,JavaScript程序在V8引擎下的運行速度媲美二進制程序。V8支持衆多操做系統,如windows、linux、android等,也支持其餘硬件架構,如IA32,X64,ARM等,具備很好的可移植和跨平臺特性。android
另外,JavaScript引擎的執行過程大體是: 源代碼-→抽象語法樹-→字節碼-→JIT-→本地代碼(V8引擎沒有中間字節碼)。在2017年4月底,v8 發佈了5.9 版本,在此版本中新增了一個 Ignition 字節碼解釋器,並默認開啓。作出這一改變的緣由爲:(主要動機)減輕機器碼佔用的內存空間,即犧牲時間換空間;提升代碼的啓動速度;對 v8 的代碼進行重構,下降 v8 的代碼複雜度。windows
接着簡單介紹一下Node,官網:http://nodejs.cn/api/api
Node.js 是一個基於 Chrome V8 引擎的 JavaScript 運行環境。Node.js 使用了一個事件驅動、非阻塞式 I/O 的模型,使其輕量又高效。瀏覽器