Copyright(c) DoYouHaoBaby.NET All Rights Reserved.
PHP的语言层面优化是一个全局性的处理,这对于提高PHP 运行效果是非常大的,以下为大家简单描述了一下。
1、 对许多代码文件说,特别是含有很多包含文件(include or require) 。它们需要花费更多的时间和解析并产生中间代码。
2、 即使PHP代码文件没有发生改变,这个执行过程还会严格的按照流程执行。也就是说,无论你的应用程序是否发生改变,每次调用的时候,都需要重新编译生成opcode码。 (其实这就是编译缓存存在的理由)
3、 这个流程不仅仅发生在主要的代码文件,对于每一次的include 和require 来说,都会执行这个流程。( 这是可以继续优化的 )
哪些地方可以优化呢?
1、将mod_php fast-cgi化,避免每次都要加载这个模块,这个模块还要每次都去初始化php的解释环境。
2、缓存php文件的opcode码,这样的话,避免每次都去编译。
APC可用用来实现第2点。编译缓存去掉了执行PHP 过程中的解析过程,所以它对含有大量PHP 代码的应用程序是非常有效的。通常情况下可以提升2-3倍以上的速度。对于包含大量include 文件的项目,编译缓存更显示出它的优越性。
注:include并不会被编译缓存进行缓存。比如现在有两个文件:main.php 和tobeInclude.php,其中main.php中有这样的语句include ’tobeInclude.php’。假设中间码的后缀为.op(实际上不是这样)。那么加上缓存cache后 main.php=>main.op ,tobeInclude.php=>tobeInclude.op。但是PHP在执行main.php的时候,她还是需要去解析main.op中的include命令,去调用tobeInclude.op的内容。具体流程是这样的。
…=>执行main.op=>执行tobeInclude.op=>…
而不是简单的执行main.op。
所以说“过多的include文件会降低程序性能的”。
