PHP有内置的优化器吗?

时间:2011-12-18 16:49:35

标签: php

就像MySQL Optimizer如何将查询转换为更合适的查询一样,是否有类似的优化过程在PHP幕后进行? PHP在哪里获取代码,在执行代码之前对其进行分析并将其转换为更高效的代码?

2 个答案:

答案 0 :(得分:4)

PHP使用单程编译过程,在该过程中,它将源代码转换为操作码流(然后执行)。因为编译仅使用单个传递而不构建AST,所以通常由其他语言完成的大多数优化将非常难以实现。显然有一些简单的优化(比如实习字符串和预先标记符号),但大多数“高级”优化都是不可能的。

顺便说一下,“优化”PHP代码的一种非常简单的方法是使用APC扩展来缓存生成的操作码流,这样就不会在每次页面加载时重新创建它:编译过程非常简单资源密集型和使用APC通常可以降低CPU使用率。

答案 1 :(得分:1)

PHP本身可能会在解释过程中进行一些优化,但我不知道任何重要的优化。

但由于PHP是可扩展的,因此可以在网络上找到一系列所谓的PHP accelerators。加速器是一种PHP扩展,它为您进行某种形式的优化,通常采用操作码缓存或类似方式。

区分解释(标准PHP发行版所做的)和编译,可以使用几个PHP编译器。您可以通过PHP编译器传递PHP代码(而不是动态地解释和执行代码)为您构建优化的可执行格式。