V8 (JavaScript引擎)

来自Local Chinese Wikipedia
imported>Adachan062025年10月6日 (一) 11:23的版本 (修正失效錨點)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转到导航 跳转到搜索

package.lua第80行Lua错误:module 'Module:CGroup/core' not found

页面Module:Infobox/styles.css没有内容。

Google V8 JavaScript引擎
File:V8 JavaScript engine logo 2.svg
Google V8 JavaScript引擎标志
脚本错误:没有“InfoboxImageVariant”这个模块。
开发者Google
首次发布2008年9月2日,​17年前​(2008-09-02
当前版本Template:LSR/wikidata
编程语言C++
操作系统Microsoft WindowsMac OS XLinuxFreeBSDAndroidwebOS
类型JavaScript引擎
许可协议BSD许可证
网站脚本错误:没有“WikidataIB”这个模块。
脚本错误:没有“Template wrapper”这个模块。

V8是一个由Google开发的开源JavaScript引擎,用于Google ChromeChromium[1],项目以V8发动机其命名[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]

Template:Program execution

参考文献[编辑]

  1. package.lua第80行Lua错误:module 'Module:Citation/CS1/Identifiers' not found
  2. package.lua第80行Lua错误:module 'Module:Citation/CS1/Identifiers' not found
  3. package.lua第80行Lua错误:module 'Module:Citation/CS1/Identifiers' not found需付费查阅
  4. package.lua第80行Lua错误:module 'Module:Citation/CS1/Identifiers' not found
  5. package.lua第80行Lua错误:module 'Module:Citation/CS1/Identifiers' not found
  6. package.lua第80行Lua错误:module 'Module:Citation/CS1/Identifiers' not found

外部链接[编辑]

参见[编辑]

package.lua第80行Lua错误:module 'Module:Portal/images/letter' not found

Template:NavboxV2 package.lua第80行Lua错误:module 'Module:Navbar/configuration' not found Template:Node.js