ZEND ENGINE 的由来,写在前面的废话,这段话其实是写给自己的,些给自己留着备忘的。嘿嘿。
zend engine 出现在php3.0之后,由于php的普遍使用,php采用的是边解释边运行的方式,整体运行效率非常第。此外,由
于php3.0的整体耦合度比较高,可扩展性也不够好,不利于应付各种各样需求。这样 Zeev Suraski 和 Andi Gutmans 决定重写代码以解决这两个问题。最终他们俩把该项技术的核心引擎命名为 Zend Engine,Zend 的意思即为 Zeev + Andi 。
ZEND 引擎的主要作用就是改变了以前php边解释,边执行。改为:编译(Compile),然后再执行(Execute)。这样使得php
从两方面得到了大幅度的提高:一、执行效率 二、大幅度的降低了代码的耦合度,使得代码可扩展性大大提高。
2004年7月,php5 发布,支持php5的是zend 2.0,这个版本主要是对php的面向对象进行了改进,但是执行效率相对于php4
没有太大的提高。
但是不是zend 引擎就完美无缺了, zend engine 将代码分成编译和执行两大部分。但是他有一个问题就是在就我们的代码
一般情况下在完成后就很少再改动了,可是在执行的时候这些代码会被一边又一边的来回的编译。这样就变成了毫无必要的
浪费资源。除此之外,目前的 PHP 对多字节的字符处理也是 PHP 的一大致命缺陷。除此之外,目前的 PHP 对多字节的字符处理也是 PHP 的一大致命缺陷。这在人们联系日益国际化的今天几乎是不可忍受的。而无数人在抨击 PHP 或 比较 ASP 等同类语言时总是不可避免的要提到这一点。同时受到 IBM 方面的压力,PHP6 也将会把对多字节字符的处理提到首要日程。这在 PHP6 的 Dev 版本中已经得到体现。