作者:淡逸幽悠 | 来源:互联网 | 2015-08-25 01:01
很多PHPer都开始更新知识,很多做内核开发的已经在学习php7的hash结构。我们不说学习,但是让PHP加速我们用到了opcode,我们知道使用opcache在处理机制上面是缓存的opcode,这种机制能让PHP5更快。
我们也需要近一步了解PHP7的运行原理,PHP7 身边的很多朋友已经开始进行更高级的学习,特别是PHP7在内核处理机制上面跟原有PHP5发生了很大的不同。那我们接下来看看,PHP7的内核处理机制。
我们先来看看PHP5的内核处理机制与PHP7不同的对比:
PHP5执行这段代码会经过如下4个步骤:
1. Scanning (Lexing) ,将PHP代码转换为语言片段(Tokens)
2. Parsing , 将Tokens转换成简单而有意义的表达式
3. Compilation , 将表达式编译成Opocdes
4. Execution , 顺次执行Opcodes,每次一条,从而实现PHP脚本的功能。
而PHP7是分为了 5个大的步骤来完成:
1. Scanning (Lexing) ,将PHP代码转换为语言片段(Tokens)
2. Parsing , 将Tokens转换成简单而有意义的表达式
3. Compilation , 将表达式编译成Opocdes
4.AST 机制(主要完成是通过typeinf、JIT和bytecodes)完成
5. Execution , 顺次执行AST,每次一条,从而实现PHP脚本的功能。
JIT 注:
JIT是just in time,即时编译技术。使用该技术,能够加速程序的执行速度。JIT是运行时环境的一部分,它把解释型语言的可执行文件程序集转换到原生可执行代码。