V8 (JavaScript引擎)
维基百科,自由的百科全书
![]() Google V8 JavaScript 引擎標誌 |
|
|---|---|
| 開發者 | |
| 穩定版本 | 3.19.2[1]/ 2013年5月17日 |
| 程式語言 | C++ |
| 作業系統 | Microsoft Windows、Mac OS X、Linux、FreeBSD、Android、webOS |
| 開發狀態 | 支援中 |
| 類型 | JavaScript引擎 |
| 許可協議 | BSD許可證 |
| 網站 | code.google.com/p/v8/ |
V8是一個由丹麥Google開發的開源JavaScript引擎,用於Google Chrome中。[2]Lars Bak是這個項目的組長。[3]
V8在執行之前將JavaScript編譯成了機器碼,而非位元組碼或是直譯它,以此提升效能。更進一步,使用了如內聯緩存(inline caching)等方法來提高性能。有了這些功能,JavaScript程序與V8引擎的速度媲美二進制編譯。[4]
传统的javascript是动态语言, 又可稱之為 Prototype-based Language,JavaScript繼承方法是使用prototype, 透過指定prototype屬性,便可以指定要繼承的目標。属性可以在运行时添加到或从对象中删除,引擎會为執行中的物件建立一個属性字典,新的属性都要透過字典查找属性在内存中的位置。V8為object新增属性的时候,就以上次的hidden class为父类別,创建新属性的hidden class的子类別,如此一來属性访问不再需要动态字典查找了。
為了缩短由垃圾收集造成的停顿,V8 使用stop-the-world, generational, accurate 的垃圾收集器。[5]在执行回收之时会暫時中断程序的执行,而且只处理物件堆疊。還會收集內存內所有物件的指標,可以避免内存溢位的情况。V8組譯器是基於Strongtalk組譯器。[6]
參見 [编辑]
注釋 [编辑]
- ^ http://code.google.com/p/v8/source/browse/trunk/ChangeLog ChangeLog
- ^ Philipp Lenssen. Google on Google Chrome - comic book. Google Blogoscoped. 2008-09-01 [2008-09-01].
- ^ Minto, Rob. The genius behind Google’s web browser. Financial Times. March 27 2009 [2009-03-31].
- ^ Seeley, Rich; Jack Vaughan. Google Chrome shifts architects' equations as V8 powers the browser. SOA News. 5 September 2008 [2008-09-07].
- ^ V8 JavaScript Engine: Introduction. Google Code. Google. [17 August 2010].
- ^ v8 Licenses
外部連結 [编辑]
- 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[1] is a toolkit for writing performant non-blocking event-driven network servers in JavaScript.
- Inside V8 - A Javascript Virtual Machine
|
|||||||||||||||||||||||||||||||||
