PHP 是最流行的用于 web 开发的脚本语言之一。PHP 的最新版本,PHP 7 在性能上做了很大的优化。不过,PHP 还有一个竞争对手 HHVM (HipHop Virtual Machine) — 一个运行 PHP 代码的虚拟工具。二者直接的比较正在升温,那么让我们来看一下他们直接的性能对比吧。
在2008年,Facebook 启动了一项工作,计划开发一个工具 将 PHP 脚本转换成 C++,这样就可以被编译后在 web 服务器上运行。目的是节省服务器资源,这是一个很重要的目标,因为 Facebook 的用户量正在快速增长。从这个意义上讲,这个项目是成功的,因为它可以让服务器处理之前五到六倍的请求量。
在回答哪个更好之前,让我们先来看一下他们之间的关键不同点和相似之处。
代码解析:
PHP7 和 HHVM 之间的基本不同之处在于他们解析 PHP 代码的方式。PHP7 使用标准的 PHP 解析器,它是一个可以给所有人使用的免费软件,可以在服务器上直接解析和运行。它生成 HTML 代码,然后发送给客户端,客户端显示出用户期望的内容。
相比之下,HHVM 首先把 PHP 代码转化为 HipHop 字节代码,这个代码再被翻译成机器码然后执行。在这个过程中 HHVM 会对代码进行优化,优化一些影响执行效率的 PHP 代码,目标是提高运行速度。
编写代码
PHP 解析器和 HHVM 都可以接收 PHP 代码然后运行。这样写代码的过程是完全一样的。但是如果你想使用 HHVM,你需要在你的服务器上安装 HHVM 然后以命令行的方式通过 HHVM 命令来调用。
HHVM 比之前的 PHP 版本能提供更快速的性能。但是最近的性能测试认为至少在某些情况下 PHP7 是比 HHVM 稍微快些。让我们来看一下由 Kinsta 来做的性能测试结果:
WordPress:运行在WordPress4.1.1的 PHP7 每秒钟比 PHP5.6 能执行超过两倍的请求,但是没有 HHVM3.6.1 提供的多,在测试中 HHVM 每秒钟执行624个请求而 PHP7 只执行604个。
Drupal:PHP7 可以给 Drupal 用户提供比 HHVM 更加明显的优势。PHP7 在 Drupal8 上的处理响应效率比 HHVM 高出超过37个百分点。
除了开发出 HHVM 的 FaceBook 公司外,还有很多其他公司也采用了这个方案,在服务器上用 HHVM 运行 PHP 应用,包括 Wikimedia 和电子商务网站 Etsy。
Wikimedia:Wikimedia 拥有大量的教育内容,包括著名的在线百科全书维基百科。维基百科每 个月吸引着近五亿的互联网用户,为了满足这样高级的需求,需要优化服务器的性能,和 PHP相比 HHVM 有一个显著的优点,它可以同时加载多个 SPU 核心, 而 PHP 是单线程语言,不能被并行化。维基百科部署了 HHVM 后,CPU 的负载从50%降到了10%,用户提交编辑时的平均响应时间减少到原来的一半,页面的平均加载时间从原来的1.3秒降到了0.9秒。
PHP7 稳定版将发布于 2015年11月。因此,公司尚未使用新的语言,但 PHP7 测试版的性能有希望的基准测试结果可以吸引更多的公司使用新版本。
未来是 PHP7 的时代,那 HHVM 呢?很遗憾,它是离死不远了。虽然现在许多企业已经在使用 HHVM增加在其网站上的表现。 但是 PHP 和 HHVM 之间的过渡不是瞬间就能完成的。Etsy(一个网络商店平台)花了的半年多时间来完成过渡。在和 PHP7 相比,HHVM 暂时只有很轻微的速度好处,企业会急着切换回 PHP。
Facebook 正在继续开发 HHVM。它最近宣布了对 Mac OS X 的支持,使该技术让苹果开发者便于使用。 HHVM 开发商相信他们的 HHVM 仍比 PHP7 快,在很多情况下,包括与 WordPress。
作为一个网店老板,你需要根据你的网店所在的平台决定是否使用 PHP7 或 HHVM。如果你的网站是用 WorldPress 创建的,那么你可以看看最新版本的 HHVM 和 PHP 7 的基准测试结果,从测试结果可以发现两者在性能上的差异,然后你就可以选择解决方案,最大限度地减小页面加载时间,服务器响应时间和 CPU 使用率。
HHVM 使用动态翻译技术,在大多数情况下(包括WordPress)可以提供更高的性能。
HHVM 在处理大量请求时,可以保证每个请求只使用少量的内存。
HHVM 开发者正在稳步增加这个引擎所能运行的 PHP 代码的数量,它已经可以运行最新版本的 WorldPress,以及其他常见的 PHP 框架和应用。
HHVM 是开源的,尽管 HHVM 是 Facebook 开发的,但它是开源的,意味着任何人都可以使用和修改它的源码。
选择 PHP 7 的理由
PHP 7 在某些情况下比 HHVM 更快,包括运行 Drupal 8。
使用 PHP 7 不需要安装设置 HHVM。
尽管很多 PHP 4 的功能在新版本中不再支持,但用 PHP 5 写的代码在转换到 PHP 7 后将会如预期一样工作。
PHP 7 由 PHP 社区开发,这是一群开发稳定可靠 PHP 版本久负盛名的人。
不要犹豫太久,Kinsta 建议那些在线的网站尽量在 PHP 7 与 HHVM 之间作出选择,早点开始实施解决方案,让你的网站性能得到优化。一个低效的网站也会让你的声誉受损,那将很难挽回。
相对于旧版本的 PHP,HHVM and PHP 7 都更有益。作出决定,尽快将你的网站切换到新的系统。
评论删除后,数据将无法恢复
评论(53)
引用来自“剑心”的评论
这有毛线好比较的,7出来hhvm必死无疑引用来自“润群”的评论
是时候该大喊一句了引用来自“封心”的评论
没用过hhvm,谁给科普一下,从hhvm换到php 或者从php换到hhvm 很费事吗?引用来自“eechen”的评论
HHVM是一个包含多个线程的单进程服务,它不像PHP-FPM有1个主进程和多个工作进程(Nginx也是这种进程模型),也就是说HHVM因为线程问题发生崩溃或僵死时无法自动恢复,而PHP-FPM的主进程却可以重启工作进程. 百度转HHVM遇到的问题:崩溃/内存泄露/兼容性/死锁/性能(JIT热身/没有触发JIT). http://lamp.baidu.com/2014/11/04/hhvm-in-baidu/引用来自“宏哥”的评论
你这么空, 能不能帮忙把 bcompiler 升级一下,支持php5.6以及以上版本引用来自“Risol”的评论
宏哥你最可爱了, 哈哈哈哈哈哈引用来自“春天花不开”的评论
哈哈引用来自“隐形人”的评论
bcompiler是什么这一节,我总感觉是把 Website 当做 Webstore 翻译了……
引用来自“隐形人”的评论
php7 相比较php5 为何性能会提升将近一倍 这是我好奇的地方