PHP是最好的编程语言,这个已经成为了人们津津乐道的话题。然而关于这艘航母究竟会服役多久,它会一直航行下去吗,它的下一站会是哪里,对于这些问题,无数人有着强烈的好奇心,如果你也有的话,请继续阅读下去。
25年没有熄火的秘密
作为一艘已经诞生25年的航母,php似乎从来没有停航过。即使曾经史上最宏大的泰坦尼克都有过装冰山沉没的时候,然而PHP这25年来虽然航速有所下降,但是却从未停止航行。
是什么让这艘航母一直奋进前行,答案就是它的超级引擎发动机—zend engine。
作为一艘巨轮,zend engine一直全速推进着php的前行,可以说如果没有zend engine,恐怕PHP也会像泰坦尼克一样沉没了。
最强大的发动机
如果说航母跑得快,全靠马力带,那么zend engine就是最强劲的马达发动机,在它的牵引下,php航母始终未落下过。
我们都知道php是脚本解释性语言,这种语言的本质导致它的执行速度天然就会比编译行的速度慢,那么如何才能缩小这个差距呢,那就是加快解释的速度,如何加快解释的速度,这是php这艘航母在航行的途中遇到的最大问题,这个问题我们现在已经知道答案了,那就是它引入了zend engine这个马达,它通过使用编译和执行双重加速的原理,使得php航速大幅度提升。
许多人可能会有疑问,不是解释型语言吗,怎么还有编译呢?
这里我们就要对解释型语言做个简单介绍,所谓解释型语言是相对编译型语言来说的,它不经过编译成机器码,直接由解释器进行解释和执行,也就说它的核心在于解释器,解释器的存在,让解释型语言可以不经过编译就直接运行,看似解释型语言少了一道工序,实则是它需要每次运行都进行解释,也就是效率反而降低了。
zend engine原理
zend engine就是我们上面提到的解释器,它本质上就是一个虚拟机,也就是说我们的php程序就是运行在zend engine这个虚拟机里面的。只不过我们的php程序不是直接运行在它的上面,而是我们的php opcode,也就是我们经常提到的中间码是由虚拟机解释执行的。
zend本身是由c语言写的,因此效率方面不需要担心。我们需要考虑的就是zend如何加速编译和执行php的速度,我们知道php7的性能提升了1倍不止,其核心原理就是zend加快了编译phpcode的速度。
未来
php航母已经运行了25年了,虽然它目前在航海史上正在被java,python,go等追赶并超越着,但是在web海域里,php从未失去它的地位,即使是在今天,web领域上面php依然占有超过50%的份额,不过这个份额正在减少,接下来就看zend如何再次提速了。
zend经过1代,2代,3代的发展,速度一次比一次快,它的下一代会给我们一个怎样的速度我们不可预知,但是我们知道,作为超级引擎的zend从未让我们失望过。
期待zend engine4的诞生。
閱讀更多 夢迴故里歸來 的文章