Generated with sparks and insights from 55 sources

img6

img7

img8

img9

img10

img11

Introduction

  • V8引擎是由Google开发的开源JavaScript引擎,最初于2008年发布。

  • V8引擎的开发始于2006年,最初在Lars Bak的农场进行。

  • 2008年9月2日,V8与Chrome浏览器同时宣布开源。

  • V8引擎最初只支持ia32和ARM指令集,并使用SCons作为构建系统。

  • 2009年,V8引入了Irregexp正则表达式引擎,并支持x64指令集。

  • 2010年,V8引入了Crankshaft优化JIT编译器,大幅提升了运行时性能。

  • 2014年,V8推出了TurboFan优化编译器,并移植到PPC、MIPS64和ARM64指令集架构上。

  • 2016年,V8发布了Ignition解释器,进一步优化了内存使用和性能。

  • 2017年,V8完成了重大修整,默认启用Ignition和TurboFan管道。

  • 2018年,V8发布了Liftoff基线编译器,显著减少了WebAssembly应用程序的启动时间。

V8引擎的起源 [1]

  • 起源: V8引擎的开发始于2006年,由Lars Bak领导。

  • 开发地点: 最初在Lars Bak的农场进行开发,后来搬到丹麦奥胡斯的现代化办公大楼。

  • 命名灵感: V8的名字来源于50年代经典的“肌肉车”引擎。

  • 开源日期: 2008年9月2日,V8与Chrome浏览器同时宣布开源。

  • 初始支持: 最初只支持ia32和ARM指令集。

img6

img7

img8

主要版本和里程碑 [1]

  • 2008年: V8引擎发布第一个版本。

  • 2009年: 引入Irregexp正则表达式引擎,支持x64指令集。

  • 2010年: 引入Crankshaft优化JIT编译器。

  • 2014年: 推出TurboFan优化编译器。

  • 2016年: 发布Ignition解释器。

  • 2017年: 完成重大修整,默认启用Ignition和TurboFan管道。

  • 2018年: 发布Liftoff基线编译器。

img6

img7

img8

img9

img10

img11

性能优化 [1]

  • Crankshaft: 2010年引入的优化JIT编译器,生成的机器代码比之前的编译器快两倍。

  • TurboFan: 2014年推出的新优化编译器,进一步提升了性能。

  • Ignition: 2016年发布的解释器,优化了内存使用和性能。

  • Liftoff: 2018年发布的基线编译器,减少了WebAssembly应用程序的启动时间。

  • 垃圾回收: 2011年引入增量垃圾回收器,减少了停顿时间。

img6

img7

img8

img9

img10

img11

指令集支持 [1]

  • 初始支持: ia32和ARM指令集。

  • 2009年: 支持x64指令集。

  • 2010年: 增加32位MIPS指令集。

  • 2014年: 移植到PPC、MIPS64和ARM64指令集架构。

  • 2017年: 新增S390移植平台。

垃圾回收改进 [1]

  • 2011年: 引入增量垃圾回收器,减少了停顿时间。

  • 2016年: 启动Orinoco项目,开发并发垃圾回收器。

  • 空闲时垃圾回收: 与Blink等嵌入器合作,在空闲时进行垃圾回收。

  • 并发标记: Orinoco v1.0包括并发标记、并发扫描、并行清理和并行压缩。

  • Unified V8-Blink Heap: 同步运行跨V8和Blink的垃圾回收。

img6

img7

img8

img9

img10

img11

WebAssembly支持 [1]

  • 2015年: 第一个WebAssembly原型在V8上实现。

  • 2017年: V8默认启用WebAssembly。

  • Liftoff: 2018年发布的基线编译器,减少了WebAssembly应用程序的启动时间。

  • WebAssembly: 提供了可预测的性能。

  • 实验支持: 2016年开始提供实验支持。

img6

img7

img8

img9

img10

img11

未来展望 [1]

  • 持续优化: V8团队将继续优化性能和内存使用。

  • 新特性支持: 持续支持最新的JavaScript特性。

  • 安全性: 提供针对新型安全威胁的缓解措施。

  • 跨平台: 进一步提升跨平台兼容性。

  • 社区贡献: 鼓励社区参与和贡献。

img6

img7

img8

img9

img10

img11

<br><br>