PHP 7 与 HHVM 比较

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

PHP 是用于 Web 开发的最流行的脚本语言之一。 PHP 的最新版本 PHP 7 是一种新版本的语言,针对快速性能进行了优化。然而,PHP 在 HHVM(HipHop 虚拟机)中有一个竞争对手——一种执行 PHP 代码的虚拟工具。这两个选项之间的竞争正在升温,所以让我们来看看每个选项可以提供的性能。

什么是 HHVM?

2008 年 ,Facebook 开始研究将 PHP 脚本转换 为 C++ 的工具,以便它可以在 Web 服务器上编译和执行。目的是节省服务器资源,这是一个重要目标,因为 Facebook 的用户群正在迅速增长。从这个意义上说,该项目是成功的;它使服务器能够容纳比以前管理的流量多五到六倍的流量。

快进几年到 2010 年。Facebook 的服务器需求增长得更快,这使其需要进行另一项创新以使其能够更高效地运营。针对这种需求,Facebook 开发了 HipHop 虚拟机(HHVM)。

HHVM 使用即时 (JIT) 编译将 PHP 代码转换为一种字节码。然后它将此字节码转换为机器码并对其进行优化,使其尽可能快地运行。

什么是 PHP 7?

PHP 7 是 PHP 社区对 HHVM 的回应。发布 PHP 7 的早期公告声称,与该语言的前一版本 PHP 5 相比,它将提供超过 100% 的性能改进

您可能想知道为什么 PHP 跳过版本 6 。答案是 PHP 6 的开发始于 2005 年,但它持续了很长时间并遇到了很多问题,以至于 PHP 6 在准备发布之前很久就已经声名狼藉。因此,PHP 社区决定跳过名称 PHP 6,直接使用 PHP 7 作为该语言的新工作版本。

真正的问题不是 PHP 7 与 PHP 5 相比如何,因为很明显 PHP 7 提供了更快的性能。相反,考虑的是 PHP 7 与 HHVM 的比较。许多专家对这两种处理 PHP 代码的方式进行了测试,得出了一些有趣的结果。

PHP 7 与 HHVM:异同

在回答“哪个更好”的问题之前,让我们看一下 PHP 7 和 HHVM 之间的主要区别,以及它们的相似之处。

代码解释

PHP 7 和 HHVM 之间的根本区别在于它们各自解释 PHP 代码的方式。 PHP 7 使用标准的 PHP 解释器,任何人都可以使用的免费软件,直接在服务器上解释和执行 PHP 代码。这会生成 HTML 代码,然后将其发送到客户端。客户端然后向网络用户显示所需的内容。

相比之下,Hip Hop 虚拟机首先将 PHP 代码转换为 HipHop 字节码。然后将此代码翻译成机器代码并执行。在此转换过程中进行了一些优化,消除了 PHP 代码中的低效问题,以提供更快的性能。

编写代码

PHP 解释器和 HHVM 都获取并执行 PHP 代码。因此,在每种情况下编写代码的过程几乎相同。但是,如果你想 使用 HHVM ,你需要在你的服务器上安装它,然后在命令行上使用 hhvm 命令调用它。

基准测试

HHVM 提供了比以前版本的 PHP 快得多的性能。然而,最近的基准测试表明 PHP 7 比 HHVM 稍快,至少在某些情况下是这样。让我们来看看 Kinsta 进行的一些 基准测试 的结果。

  • WordPress:在 WordPress 4.1.1 上运行,PHP 7 允许每秒执行的请求数是 PHP 5.6 的两倍多。但是,它仍然没有 HHVM 3.6.1 处理那么多,HHVM 3.6.1 在测试中每秒执行 624 个请求,而 PHP 7 每秒仅执行 604 个请求。
  • Drupal:PHP 7 为 Drupal 用户提供了优于 HHVM 的明显优势。与 Drupal 8 上的 HHVM 相比,PHP 7 每秒可以处理多出 37% 的服务器请求。

哪些公司使用 HHVM?

除了开发了 HHVM 的 Facebook 之外,许多其他企业也采用这种方案在自己的服务器上运行 PHP 应用程序。其中包括维基媒体和电子商务网站 Etsy。

  • 维基媒体:维基媒体拥有范围广泛的教育内容,包括著名的维基百科在线百科全书。维基媒体每月吸引近 50 亿互联网用户,因此需要优化服务器性能以满足其高水平的需求。 HHVM 比 PHP 具有显着优势,因为它可以同时加载多个 SPU 内核,而 PHP 是一种无法并行化的单线程语言。 据 Wikimedia 称 ,部署 HHVM 可将 CPU 负载从 50% 减少到仅 10%,将响应用户提交编辑所需的平均时间减半,并将平均页面加载时间从 1.3 秒减少到仅 0.9 秒。
  • Etsy:拥有 5400 万用户,Etsy 的服务器也面临着巨大的需求。 Etsy 工程师 将 HHVM 与 PHP 5.4 进行了比较 ,发现 HHVM 每秒可以处理多达 280 个服务器请求,而一旦请求数量超过每秒 190 个,PHP 5.4 的响应时间就开始急剧增加。

PHP 7 和 HHVM 的未来是什么?

PHP 7 将于 2015 年 11 月稳定发布。因此,公司尚未使用新语言,但 PHP 7 测试版性能的基准测试结果很有希望,可能会吸引更多公司采用新版本的语言。

PHP 7 的前景一片光明,但 HHVM 呢?很可能离死不远了。许多企业已经在使用 HHVM 来提高其站点的性能。 PHP 和 HHVM 之间的转换不是瞬时的。 Etsy 花了六个多月的时间才完成过渡。与 HHVM 相比,PHP 7 的速度优势非常小,因此企业不太可能急于切换回 PHP。

Facebook 正在继续开发 HHVM。它最近 宣布支持 Mac OS X ,使喜欢在 Apple 开发环境中工作的开发人员可以使用该技术。 HHVM 开发人员确信 HHVM 在许多情况下仍然比 PHP 7 更快 ,包括使用 WordPress。

为什么 HHVM 与 PHP 7 的竞争对 PHP 店主很重要?

作为在线商店的所有者,您需要根据托管您商店的平台来决定是使用 PHP 7 还是 HHVM。例如,如果您的站点是使用 WordPress 构建的,请查看 HHVM 和 PHP 7 的基准测试,以了解每个最新版本的性能如何。您希望选择能够最大程度减少页面加载时间、服务器响应时间和 CPU 使用率的解决方案。

选择 HHVM 的理由

  • HHVM 使用动态转换在许多情况下提供更快的性能,包括在 WordPress 上。
  • 在面临大量请求的情况下,HHVM 使用较少的内存来处理每个请求。
  • HHVM 开发人员正在稳步增加引擎可以运行的 PHP 代码库的数量。它已经可以运行最新版本的 WordPress,以及许多其他常见的 PHP 框架和应用程序。
  • HHVM 是开源的。尽管 HHVM 是由 Facebook 开发的,但它是开源的,这意味着源代码可供任何想要使用或更改它的人使用。

选择 PHP 7 的理由

  • PHP 7 在某些情况下比 HHVM 执行得更快,包括在 Drupal 8 上运行时。
  • 使用 PHP 7 不需要您安装或设置 HHVM。
  • 在转换到 PHP 7 后,用 PHP 5 编写的代码应该可以按预期工作,尽管新版本不再支持 PHP 4 代码的某些功能。实际上,这意味着过去十年中创建的任何代码都可能已准备好过渡到 PHP 7。
  • PHP 7 由 PHP 社区开发,该社区在创建稳定可靠的 PHP 版本方面久负盛名。

HHVM 与 PHP 7:做出你的选择

不要为这个决定苦恼太久。 Kinsta 建议在线业务在 PHP 7 和 HHVM 之间快速选择。您越早做出决定,就可以越早开始实施解决方案,从而优化您的网站性能。性能不佳的网站可能会损害您的声誉,而且这种情况很难逆转。

与旧版本的 PHP 相比,HHVM 和 PHP 7 都具有显着优势。做出选择并尽快开始将站点切换到新系统的过程。