• 每天进步一点点!

文章分类

推荐网站

常用手册

PHP的生命周期(Opcode)【原创】

<<返回

2013-05-10 15:32:20

    无论是从命令行还是从web服务器请求PHP脚本,PHP必须执行5个步骤,如下图所示,Zend引擎必须从文件系统读取文件、扫描其词典和表达式、解析文件、创建要执行的计算机代码(成为Opcode),处理Opcode,然后做出响应。

 

 

PHP的生命周期非常短暂,但是每次对脚本发出请求时,它必须执行上图中列出的所有步骤,每次在针对特定PHP脚本的请求到达时,即使该PHP脚本内容没有变化,Zend引擎也必须重新创建该文件的Opcode。对于PHP的初次请求,这是必要的,但后续请求无需如此操作。如果实现Opcode缓存,我们就可以省略词典扫描,解析及创建Opcode这三个步骤以缩短PHP的生命周期,从而提高程序的性能。

下图是优化后的最终PHP的生命周期

 

 

在用户初次请求中,会采用上面第一个图的路径,但在执行词典扫描前还要执行其他两个步骤。Zend引擎执行的额外步骤是在缓存内部检查已生成的Opcode,,如果之前没有生成Opcode,则引擎继续执行词典扫描,直至到达创建Opcode这一步。生成Opcode后,将其放入Opcode缓存中,然后继续。执行这个步骤,则之后对这个PHP脚本的任何请求都可以从共享内存中读取Opcode,从而不必自行创建Opcode。

用来缓存PHP的Opcode的缓存工具有几种,常用的如Alternative PHP Cache(APC), XCache,eAccelerator(eA)等

文章评论

  • 暂无评论

发表评论

昵称:

内容:

发表评论