V8
(JavaScript引擎)
Lars Bak是這個(gè)項(xiàng)目的組長(zhǎng)带饱,目前該JavaScript引擎已用于其它項(xiàng)目的開(kāi)發(fā)隐轩。第一個(gè)版本隨著第一個(gè)版本的Chrome于2008年9月2日發(fā)布蚌卤。
目前該JavaScript引擎已用于其它項(xiàng)目的開(kāi)發(fā)褐耳。第一個(gè)版本隨著第一個(gè)版本的Chrome于2008年9月2日發(fā)布沪停。
V8使用C++開(kāi)發(fā)笔横,并在谷歌瀏覽器中使用痴柔。在運(yùn)行JavaScript之前沦偎,相比其它的JavaScript的引擎轉(zhuǎn)換成字節(jié)碼或解釋執(zhí)行,V8將其編譯成原生機(jī)器碼(IA-32, x86-64, ARM, or MIPS CPUs)咳蔚,并且使用了如內(nèi)聯(lián)緩存(inline caching)等方法來(lái)提高性能豪嚎。有了這些功能,JavaScript程序在V8引擎下的運(yùn)行速度媲美二進(jìn)制程序谈火。
V8中實(shí)現(xiàn)的ECMAScript中指定 ECMA - 262 侈询,第3版 運(yùn)行在Windows XP和Vista,Mac OS X的10.5(雪豹和Linux系統(tǒng)使用IA - 32或ARM處理器。
V8可以獨(dú)立運(yùn)行糯耍,也可以 嵌入 到任何C++應(yīng)用程序扔字。項(xiàng)目托管在Google Code上 [1] ,基于BSD協(xié)議温技,任何組織或個(gè)人可以將其源碼用于自己的項(xiàng)目中啦租。
Google V8 引擎使用 C++ 代碼編寫(xiě),實(shí)現(xiàn)了 ECMAScript 規(guī)范的第五版荒揣,可以運(yùn)行在所有的主流操作系統(tǒng)中篷角,甚至可以運(yùn)行在移動(dòng)終端 ( 基于 ARM 的處理器,如 HTC G7 等 )系任。V8 最早被開(kāi)發(fā)用以嵌入到 Google 的開(kāi)源瀏覽器 Chrome 中恳蹲,但是 V8 是一個(gè)可以獨(dú)立的模塊虐块,完全可以嵌入您自己的應(yīng)用,著名的 Node.js( 一個(gè)異步的服務(wù)器框架嘉蕾,可以在服務(wù)端使用 JavaScript 寫(xiě)出高效的網(wǎng)絡(luò)服務(wù)器 ) 就是基于 V8 引擎的贺奠。
同其他 JavaScript 引擎一樣,V8 會(huì)編譯 / 執(zhí)行 JavaScript 代碼错忱,管理內(nèi)存并負(fù)責(zé)垃圾回收儡率,與宿主語(yǔ)言的交互等。V8 的垃圾回收器采用了眾多技術(shù)以清,使得其運(yùn)行效率大大提高儿普。通過(guò)暴露宿主對(duì)象 ( 變量,函數(shù)等 ) 到 JavaScript掷倔,JavaScript 可以訪問(wèn)宿主環(huán)境中的對(duì)象眉孩,并在腳本中完成對(duì)宿主對(duì)象的操作。