v8之一是什么

文章类型:v8

发布者:admin

发布时间:2023-06-15

一:定义

1:v8是虚拟机的一种,可以简单的理解为翻译程序,说白了就是将编译语言js转换成机器能够识别的机器语言。目前,谷歌的v8是最广泛的虚拟机

2:v8主要功能就是结合js特性和本质来编译执行它

3:v8主要职责就是执行js代码

二:历史

1:v8之前 所有的js虚拟机采用的都是解释执行的方式,会导致执行速度过慢

2:v8引入了即时编译(JIT)的双轮驱动设计,采用混合编译和解释执行两种权衡手段,提高执行效率

三:使用场景

1:内存占用过高

2:页面响应速度过慢

3:node任务被阻塞

四:执行完整过程(编译流水线)

1:隐藏类=>将动态类型转化为静态类型,消除动态语言执行速度过慢的问题

2:惰性解析=>加速代码的启动速度

主要组成

1:Parser: 解析器,负责将源代码解析成AST,有两个阶段词法分析和语法分析

2:Ignition: 解释器,负责将AST转换成字节码并执行,是介于AST和机器码之间的一种代码,同时会标记热点代码

3:TurboFan: 编译器,负责将热点代码编译成机器码并执行,是根据字节码和热点函数反馈类型生成优化后的机器码

4:Orinoco: 垃圾回收器,负责进行内存空间回收,当执行完后进行销毁释放内存