ホームページ > php教程 > php手册 > PHP编译器及其性能评估

PHP编译器及其性能评估

WBOY
リリース: 2016-06-06 19:51:11
オリジナル
951 人が閲覧しました

PHP自从4.0以后成为了编译语言. 在此之前PHP都是被直接解释运行的. 2000年, PHP4.0发布的时候,引入了Zend Engine. Zend引擎把PHP代码的执行切分成两个阶段: 1. 解析PHP代码并生成二进制中间码Zend Opcodes, Zend Opcodes类似于java bytecodes 2. Zend Engine

PHP自从4.0以后成为了编译语言. 在此之前PHP都是被直接解释运行的.

2000年, PHP4.0发布的时候,引入了Zend Engine.

Zend引擎把PHP代码的执行切分成两个阶段:

1. 解析PHP代码并生成二进制中间码Zend Opcodes, Zend Opcodes类似于java bytecodes

2. Zend Engine解释运行Opcodes


这些Opcodes被设计成可能被加载在内存中,这是通过opcode caching extensions实现的。

关于这些缓存扩展可以查阅:

http://en.wikipedia.org/wiki/List_of_PHP_accelerators


缓存扩展仅仅是为了避免PHP代码被重复编译。如果缓存中有相同可用的代码,则直接执行。

这本身并非加速了PHP代码本身的执行速度,只是简化了步骤来提高性能。

你需要通过optimizer extensions来优化PHP代码,获得代码执行速度的提高。


这里还要提一下encoder extensions,这些扩展是为了在出售PHP资产时,用以保护PHP源码的。

这些扩展允许提取Opcodes并保存为平台无关的文件,其内容被通过特定格式加密。

下图表明在使用Zend Engine部署的时候,PHP执行过程:

PHP编译器及其性能评估


上述提到的PHP编译实际上都是编译成中间码,

实际上PHP的编译还有一种形式,即编译成本地机器码或者WEB服务器的扩展。



http://www.phpclasses.org/blog/post/117-PHP-compiler-performance.html


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート