> **一.查看JIT编译原理图** > ![](https://img.kancloud.cn/40/a2/40a25addf99f4eb2a644a9d9fb6e6680_1024x679.png) **二.Zend Opcache作用** 1.检查opcodes是否缓存 2.zend compiler编译器进行编译生成opcodes 3.optimizer优化器生成优化后的opcodes 4.把优化后的opcodes放入opcodes cache缓存 5.经过zend vm虚拟机生成opcodes handlers处理程序 6.送入x86 cpu架构进行执行 **三.JIT编译原理** 1.检查opcodes是否缓存 2.zend compiler编译器进行编译生成opcodes 3.optimizer优化器生成优化后的opcodes 4.把优化后的opcodes放入opcodes cache缓存 5.jit编译器把optimized opcodes再次编译成汇编机器码machine codes 6.进入zend vm虚拟前先检查是否开启jit引擎 7.如果已经开启了jit引擎则直接读取机器码中的jit buffer代码片段 8.送入x86 cpu架构进行执行 **四.Opcache示意图的关键点** 1.Opcache会做opcode层面的优化,比如图中的俩条opcode合并为一条 2.PHP8的JIT目前是在Opcache之中提供的 3.JIT在Opcache优化之后的基础上,结合Runtime的信息再次优化,直接生成机器码 4.JIT不是原来Opcache优化的替代,是增强 5.目前PHP8只支持x86架构的CPU