术语:V8 引擎

定义

V8 是 Google 开发的开源 JavaScript 引擎,使用 C++ 编写,用于 Chrome 浏览器和 Node.js。它将 JavaScript 代码直接编译为机器码执行,而非使用解释器,这使得 V8 具有极高的执行性能。

核心特性

特性说明
JIT 编译即时编译,将热点代码编译为机器码
TurboFan优化编译器,针对热点函数进行深度优化
Ignition解释器,快速启动并收集类型信息
Orinoco垃圾回收器,负责内存管理

工作原理

flowchart LR
    JS[JavaScript 代码] -->|解析| AST[抽象语法树]
    AST -->|Ignition| Bytecode[字节码]
    Bytecode -->|执行| Interpreter[解释器]
    Bytecode -->|热点检测| TurboFan[优化编译器]
    TurboFan -->|生成| MachineCode[机器码]

内存管理

V8 使用分代垃圾回收:

  • 新生代:存放短生命周期对象,使用 Scavenge 算法
  • 老生代:存放长期存活对象,使用 Mark-Sweep 和 Mark-Compact 算法

锚点连接