V8 (JavaScript引擎)
Google開發的JavaScript引擎 来自维基百科,自由的百科全书
V8是一個由Google開發的開源JavaScript引擎,用於Google Chrome及Chromium中[3],項目以V8發動機其命名[4]。此項目由Lars Bak主導開發[5]。
運作方式
V8在執行之前將JavaScript編譯成了機械碼,而非位元組碼或是解釋執行它,以此提升效能。更進一步,使用了如內聯快取(inline caching)等方法來提高效能。有了這些功能,JavaScript程式與V8引擎的速度媲美二進制編譯。[6]
傳統的Javascript是動態語言,又可稱之為Prototype-based Language,JavaScript繼承方法是使用prototype,透過指定prototype屬性,便可以指定要繼承的目標。屬性可以在執行時添加到或從對象中刪除,引擎會為執行中的物件建立一個屬性字典,新的屬性都要透過字典尋找屬性在主記憶體中的位置。V8為object新增屬性的時候,就以上次的hidden class為父類別別,新增屬性的hidden class的子類別,如此一來屬性訪問不再需要動態字典尋找了。
為了縮短由垃圾回收造成的停頓,V8使用stop-the-world, generational, accurate的垃圾回收器[7]。在執行回收之時會暫時中斷程式的執行,而且只處理物件堆疊。還會收集主記憶體內所有物件的指標,可以避免主記憶體溢位的情況。V8組譯器是基於Strongtalk組譯器[8]。
參考文獻
外部連結
參見
Wikiwand - on
Seamless Wikipedia browsing. On steroids.