跳转到内容

V8 (JavaScript引擎)

本页使用了标题或全文手工转换
本页使用了标题或全文手工转换
维基百科,自由的百科全书

这是本页的一个历史版本,由Moshirk留言 | 贡献2016年4月3日 (日) 10:50编辑。这可能和当前版本存在着巨大的差异。

Google V8 JavaScript引擎
Google V8 JavaScript引擎標誌
開發者Google
首次发布2008年9月2日,​16年前​(2008-09-02
当前版本4.9[1](2016年1月26日,​9年前​(2016-01-26
预览版本5.1.39.1[2](2016年3月4日,​9年前​(2016-03-04
源代码库 編輯維基數據鏈接
编程语言C++
操作系统Microsoft WindowsMac OS XLinuxFreeBSDAndroidwebOS
类型JavaScript引擎
许可协议BSD許可證
网站code.google.com/p/v8/

V8是一個由美國Google開發的開源JavaScript引擎,用於Google Chrome中。[3]Lars Bak是這個項目的組長。[4]

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

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

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

參見

注釋

  1. ^ V8 JavaScript Engine: V8 Release 4.9. V8 Project. 
  2. ^ https://github.com/v8/v8-git-mirror/releases
  3. ^ Philipp Lenssen. Google on Google Chrome - comic book. Google Blogoscoped. 2008-09-01 [2008-09-01]. 
  4. ^ Minto, Rob. The genius behind Google’s web browser. Financial Times. March 27, 2009 [2009-03-31]. 
  5. ^ Seeley, Rich; Jack Vaughan. Google Chrome shifts architects' equations as V8 powers the browser. SOA News. 5 September 2008 [2008-09-07]. 
  6. ^ V8 JavaScript Engine: Introduction. Google Code. Google. [17 August 2010]. 
  7. ^ v8 Licenses

外部連結