Engine in PHP 6 PHP6 引擎对比 HHVM vs Zend Engine
在我个人的幻想中PHP6 应该是这样的,函数命名一致性,并且向后兼容,又能很好的解决全局命名空间污染的问题,所有的重写数据类型的类,都能像Scala或者Dart那样,但是,这也许就是我自己的梦想。
前提
尽管没有多少人知道,但是http://www.phpclasses.org 确实有很多有趣的东西,如果你经常你浏览,你也许你会觉得无聊。最近那里在讨论一个有趣的话题就是HHVM 和Zend 2个引擎在PHP6的表现。
虽然这只是一部分人参与的话题,但是你不得不承认PHP6将是一个有趣的概念。HHVM 一直都在进步,且保持了和大多数流行的库,cms和框架兼容。这个团队知道怎么样做,既可以提高性能,又能让每个产品兼容运行。
优点
显然性能是 HHVM的优势。甚至在使用内置的OpCache5.5的时候,依然可以超越一般的PHP。它能够利用更少的资源来运行的更快。当然这不能太较真,如果你只是在用一个很小的云部署,那么很少的CPU和RAM,依然只能让你运行很小的实例。
接下来是团队优势,HHVM依靠这个Facebook这大树。Facebook就是使用HHVM来部署自己的代码,所以他们会努力让HHVM保持高效。1%的CPU秒杀就意味这他们将付出几万的费用,因此他们更愿意把钱投给HHVM的团队,以确保不要发生这样的事情。在当今高并发高流量的世界,对比Zend引擎,HHVM正在被越来越多的人了解和开发。当然Facebook是一个最好的例子。
另一个优点就是HHVM最新版本中的静态类型,通过他们内部开发的编程语言 HACK实现。HACK是PHP的一个衍生物,但是支持静态类型。HACK在将来不久就会公布,这将会让代码更加高效,HHVM也就运行的更快。
难道这一切都是和速度相关吗?
缺点
HHVM的主要缺点是无法安装依赖Zend引擎的自定义扩展,就像2部车,看上去差不多,但是他们的内部结构完全不同。
这很不幸,意味着今天的大多数扩展不能安装在HHVM除非你做了转换,而很多扩展又无法得到开发者的支持,真糟糕。这就像Python3一样。
另一个缺点同样是支持,HHVM是Facebook开发的。有分析师已经看衰Facebook的发展,而且Facebook内部也在尝试其他的架构,找出更快的解决方案。如果这些事情发生了会这么样?虽然HHVM是开源的,但是没有了Facebook的支持,又没有了大量的用户群,没有了可靠的测试开发,没有了统一的标准,HHVM的发展将大幅放缓。
最后一个可能也比较重要,那就是类似 Phalcon这样的C语言扩展框架,已经开始广泛覆盖,加上ZEPHIR的语言,有能很方便的让用户开发Zend引擎扩展,这意味着很多扩展已经能够媲美HHVM。
结论
现在还没有完全的获胜之分.如果HHVM取代Zend 那么PHP社区将从中获益.当然这要,很多的扩展都移植到HHVM.如果HHVM仍然作为单独的流派发展,也是不错的选择。
无论怎么样,PHP都在向着更加繁荣发展,作为PHP的用户,我们不妨打破自己唯一的方式,做更多的尝试。