PHP运行原理之Opcodes

在我以前的博客《Laravel5框架性能优化技巧》中提到开启OPcache能够提高php性能。那么为何开启OPcache就能够提高php运行性能呢?这里就要提到php的运行原理了--Opcodes。php

好比一段简单的PHP代码:html

<?php
    echo 'Johnson‘;
?>

PHP执行这段代码会通过以下4个步骤(确切的来讲,应该是PHP的语言引擎Zend)缓存

1.Scanning(Lexing) ,将PHP代码转换为语言片断(Tokens)
2.Parsing, 将Tokens转换成简单而有意义的表达式
3.Compilation, 将表达式编译成Opocdes
4.Execution, 顺次执行Opcodes,每次一条,从而实现PHP脚本的功能。

因此当开启OPcache的时候,php在一次请求中已经将Opcodes进行了缓存,那么下次请求的时候,就是跳过前三步,直接运行OPcache里对应的Opcodes,因此大大提高了PHP运行的性能。性能优化