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: 垃圾回收器,负责进行内存空间回收,当执行完后进行销毁释放内存