全国客服热线:4006-880844

网站建设定制JavaScriptCore引擎采用的字节码解释器和多层JIT编译器的编译架构

- 编辑:admin -

第1层LLINT interpreter用于对字节码进行解释执行,第2层基础JIT编译器将某些执行频繁的热点函数的字节码编译成基础本地代码(Baseline Native code),对于更热点的函数采用第3层的DFG Speculative JIT编译器生成更优化的本地代码(DFG Native code),第4层LLVM JIT编译器还可以对代码进一步优化,生成执行效率更高的LLVM本地代码。

        JavaScriptCore引擎采用的字节码解释器和多层JIT编译器的编译架构。第1层LLINT interpreter用于对字节码进行解释执行,第2层基础JIT编译器将某些执行频繁的热点函数的字节码编译成基础本地代码(Baseline Native code),对于更热点的函数采用第3层的DFG Speculative JIT编译器生成更优化的本地代码(DFG Native code),第4层LLVM JIT编译器还可以对代码进一步优化,生成执行效率更高的LLVM本地代码。

        但是JavaScript引擎中JIT编译器在对代码进行优化时需要进行类型特化,并在执行时进行deoptimization check,如果检查失败,则会进行代码回退。图10中OSREntry表示代码优化,OSRExit表示代码回退。