V8 (JavaScript引擎)

V8是一個由Google開發的開源JavaScript引擎，用於Google Chrome及Chromium中，項目以V8发动机其命名。此項目由Lars Bak主導開發。

 運作方式 
V8在執行之前將JavaScript編譯成了機器碼，而非位元組碼或是解释执行它，以此提升效能。更進一步，使用了如內聯緩存（inline caching）等方法來提高性能。有了這些功能，JavaScript程序與V8引擎的速度媲美二進制編譯。

传统的Javascript是动态语言，又可稱之為Prototype-based Language，JavaScript繼承方法是使用prototype，透過指定prototype屬性，便可以指定要繼承的目標。属性可以在运行时添加到或从对象中删除，引擎會为執行中的物件建立一個属性字典，新的属性都要透過字典查找属性在内存中的位置。V8為object新增属性的时候，就以上次的hidden class为父类別，创建新属性的hidden class的子类別，如此一來属性访问不再需要动态字典查找了。

為了缩短由垃圾回收造成的停顿，V8使用stop-the-world, generational, accurate的垃圾回收器。在执行回收之时会暫時中断程序的执行，而且只处理物件堆疊。還會收集內存內所有物件的指標，可以避免内存溢位的情况。V8組譯器是基於Strongtalk組譯器。

 参考文献 

 外部連結 
 Google Code project page 
 cproxyv8 及v8-juice  are C++ libraries for extending v8, e.g. to assist in binding client-side C++ classes to JavaScript.
 v8cgi  is a v8-based framework for serving web application written in JavaScript.
 node.js is a toolkit for writing performant non-blocking event-driven network servers in JavaScript.
 Inside V8 - A Javascript Virtual Machine 

 參見 

 Google Chrome
 Chromium (浏览器)
 JavaScriptCore
 Dart
 SpiderMonkey
 即时编译

Category:JavaScript引擎
Category:虛擬機器
Category:Google軟體
Category:使用BSD许可证的软件
Category:自由編譯器與直譯器