移动到myth小艾(B站)
33559 www.bilibili.com/video/b v1zv 411 z7rx
新版本的V8 parser解析器将生成AST抽象语法树。 解释器Ignition生成byteCode字节码,清除AST并释放内存空间后,将获得25% - 50%的等效机器码大小。 解释器收集优化信息并将其发送到编译器TurboFan,以使某些重新生成机器代码的热点函数从优化的机器代码返回到字节码,即通过de optimization backback code操作执行优化点
不调用值声明,只调用一次未解析生成的AST函数,bytcode直接解释并执行,不进入编译优化阶段的函数被调用多次,Igniton收集函数类型信息并标记为热点函数
因为不需要首先直接编译到机器码中,所以会生成中间层的字节码,从而节省了优化编译阶段的时间。 不需要从源代码重新分析,也可以直接通过字节码进行优化。 另外,deoptimization倒带操作functionsum(x,y )、{return x y} ); sum (1,2 ); sum (3,4 ); sum (5,6 ); sum('7)、'8); //备份运行哪个程序使用V8 Chrome浏览器的JS引擎是V8NodeJS的运行时环境是V8electron的基础引擎是V8【lektr(n )跨平台桌面APP开发
Blink提供了访问Dom的接口
功能接收JavaScript代码,编译代码,然后执行c程序。 编译的代码可以在不同操作系统的不同处理器上运行。
JS代码处理编译和执行调用堆栈内存分配垃圾回收V8的JS编译和执行解析器parser js --成功解析语法树的抽象语法树AST解释器ast--字节码byter 直接执行字节码的能力编译器compiler bytecode --更高效的机器代码V8-5.9版以前没有解释器,也有解释器
5.9版的V8 parser解释器生成抽象语法树ASTcompiler编译器Full-codegen基准编译器直接生成机器代码并运行一段时间后,解析线程优化js代码的compiler命令
机器码占用大量内存,缺少中间层机器码,一些优化策略不能很好地支持和优化JS的新语言特性,无法接受未来