V8 (JavaScript引擎)

Google V8 JavaScript引擎
Google V8 JavaScript引擎標誌
Google V8 JavaScript引擎標誌
開發者Google
首次发布2008年9月2日,​15年前​(2008-09-02
当前版本
  • 11.4 (2023年5月24日;穩定版本)[1][2]
編輯維基數據鏈接
源代码库
  • chromium.googlesource.com/v8/v8
編輯維基數據鏈接
编程语言C++
操作系统Microsoft Windows、Mac OS X、Linux、FreeBSD、Android、webOS
类型JavaScript引擎
许可协议BSD許可證
网站v8.dev/ 编辑维基数据

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]

程序执行英语Execution (computing)
基础概念
代码类型
编译策略
知名运行环境
著名编译器及工具链

参考文献

  1. ^ 1.0 1.1 Chrome Platform Status. [2023年6月29日]. 
  2. ^ 2.0 2.1 Discontinuing release blog posts. 2022年6月17日 [2023年6月19日]. 
  3. ^ Philipp Lenssen. Google on Google Chrome - comic book. Google Blogoscoped. 2008-09-01 [2008-09-01]. (原始内容存档于2015-06-18). 
  4. ^ Bynens, Mathias. Celebrating 10 years of V8. September 11, 2018 [2019-05-21]. (原始内容存档于2022-05-06). 
  5. ^ Minto, Rob. The genius behind Google's web browser. Financial Times. 27 March 2009 [1 June 2021]. (原始内容存档于1 December 2011). 需付费查阅
  6. ^ Seeley, Rich; Jack Vaughan. Google Chrome shifts architects' equations as V8 powers the browser. SOA News. 5 September 2008 [2008-09-07]. (原始内容存档于2010-04-27). 
  7. ^ V8 JavaScript Engine: Introduction. Google Code. Google. [17 August 2010]. (原始内容存档于2010年6月6日). 
  8. ^ v8 Licenses. [2010-03-17]. (原始内容存档于2015-11-27). 

外部連結

  • 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 (页面存档备份,存于互联网档案馆

參見

  • Google主题
  • icon软件主题
  • icon计算机程序设计主题
Google
部門
广告
通讯
硬件
软件
平台
开发工具
出版
搜索
算法
特征
分析
停止开发
人物
创始人
其它
活动
项目
房地产
相关
  • 主题 主题页面
  • 分类 相关分类
  • 共享资源页面 共享资源
语言
引擎列表
引擎比较
框架
客户端
  • Ample SDK英语Ample SDK
  • Chaplin.js英语Chaplin.js
  • Dojo
  • Echo
  • Extjs
  • Google網頁工具包
  • JQuery
  • Lively Kernel英语Lively Kernel
  • midori英语Midori JavaScript Framework
  • MochiKit英语MochiKit
  • MooTools英语MooTools
  • Prototype
  • Pyjs英语Pyjs
  • qooxdoo英语qooxdoo
  • Rialto英语Rialto Toolkit
  • Rico
  • script.aculo.us英语script.aculo.us
  • SmartClient英语SmartClient
  • SproutCore英语SproutCore
  • Spry英语Spry framework
  • Wakanda框架英语Wakanda (software)
  • 雅虎UI库
服务器
  • AppJet英语AppJet
  • Jaxer英语Jaxer#Aptana Jaxer
  • Node.js
  • Deno
  • WakandaDB英语Wakanda (software)
多種實作
  • Cappuccino英语Cappuccino (application development framework)
    • Objective-J英语Objective-J
  • PureMVC英语PureMVC
函式庫
  • Backbone.js
  • SWFObject英语SWFObject
  • SWFAddress英语SWFAddress
  • Lodash
人物
其他
  • DHTML
  • Ecma国际
  • JSDoc英语JSDoc
  • JSGI英语JSGI
  • JSHint
  • JSLint
  • JSON
  • JSSS英语JavaScript Style Sheets
  • Sputnik英语Sputnik (JavaScript conformance test)
  • SunSpider英语Browser speed test#SunSpider
  • 异步模块定义英语Asynchronous module definition
  • CommonJS
列表级条目列表
JavaScript库列表
Ajax框架英语list of Ajax frameworks#JavaScript
列表级条目比较
JavaScript框架英语Comparison of JavaScript frameworks
服务器端JavaScript英语comparison of server-side JavaScript solutions
软件
框架
编程语言
云平台