在nodejs中,V8引擎就是JavaScript運行的解釋器,是一個JavaScript引擎;V8使用「C 」開發,並在Google瀏覽器中使用。在執行JavaScript之前,V8會將其編譯成原生機器碼,並使用如內嵌快取等方法來提高效能。
本教學操作環境:windows7系統、nodejs 12.19.0版,DELL G3電腦。
NodeJS 概述
根據百度百科解釋,Node.js是一套用來編寫高效能網頁伺服器的JavaScript工具包。 Node.js是一個可以快速建立網路服務及應用的平台,該平台的建置是基於Chrome's JavaScript runtime,也就是說,實際上它是對GoogleV8引擎(應用於Google Chrome瀏覽器)進行了封裝。 V8引 擎執行Javascript的速度非常快,效能非常好。
NodeJS並不是提供簡單的封裝,然後提供API調用,如果是這樣的話那麼它就不會有現在這麼火了。 Node對一些特殊用例進行了最佳化,提供了替代的API,使得V8在非瀏覽器環境下運作得更好。例如,在伺服器環境中,處理二進位資料通常是必不可少的,但Javascript對此支援不足,因此,V8.Node增加了Buffer類,方便且有效率地 處理二進位資料。因此,Node不僅簡單的使用了V8,還對其進行了優化,使其在各環境下更加給力。
即時編譯JIT 概述
V8採用即時編譯技術(JIT),直接將JavaScript程式碼編譯成本地平台的機器碼。宏觀來看,其步驟為JavaScript原始碼—>抽象語法樹—>本機機器碼,且後一個步驟只依賴前一個步驟。這與其他解釋器不同,例如Java語言需要先將原始碼編譯成字節碼,然後給JVM解釋執行,JVM根據最佳化策略,運行過程中有選擇地將一部分字節碼編譯成本地機器碼。 V8不產生中間程式碼,一步到位,編譯成機器碼,CPU就開始執行了。比起產生中間碼解釋執行的方式,V8的策略省去了一個步驟,程式會更早開始運作。並且執行編譯好的機器指令,也比解釋執行中間碼的速度快。不足的是,缺少字節碼這個中間表示,使得程式碼最佳化變得更困難。
V8 概述
V8 作為 JavaScript 引擎,最初是服役於 Google Chrome 瀏覽器的。它隨著 Chrome 的第一版發布而發布以及開源。現在它除了 Chrome 瀏覽器,已經有很多其他的使用者了。諸如 NodeJS、MongoDB、CouchDB 等。
V8使用C 開發,並在Google瀏覽器中使用。在執行JavaScript之前,相較於其它的JavaScript的引擎轉換成字節碼或解釋執行,V8將其編譯成原生機器碼(IA-32, x86-64, ARM, or MIPS CPUs),並且使用瞭如內聯緩存(inline caching)等方法來提高效能。有了這些功能,JavaScript程式在V8引擎下的運行速度媲美二進位程式。
V8中實現的ECMAScript中指定ECMA - 262 ,第3版運行在Windows XP和Vista,Mac OS X的10.5(雪豹和Linux系統使用IA - 32或ARM處理器。
V8可以獨立運行,也可以嵌入到任何C 應用程式。專案託管在Google Code上[1] ,基於BSD協議,任何組織或個人可以將其原始碼用於自己的專案中。
更多node相關知識,請造訪:nodejs 教學!!
以上是nodejs中v8引擎是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!