PHP 5.6,7.0,7.1,7.2 和 HHVM 运行效率比较

澳门新葡亰网址 11

摘要:在一个基于Vagrant的本地环境中,可能是某个错误的原因,导致HHVM测试结果很差;在HHVM伙伴们协助下,该原因仍在研究中!然而,在DigitalOcean的一个4GB虚拟机中,HHVM甚至盖过了最新版的PHP-NG的风头!

澳门新葡亰网址 1

澳门新葡亰网址 2

image.png

结论:它们反映出HHVM的功效更佳(在JIT热启动后),虽然出于某些原因,我们不能在所有装备中获取这些结果。

我们每年都会尝试深入了解不同版本的 PHP 和 HHVM 在各种平台的性能基准。
今年,我们全面对 20 种不同平台/配置中的四种不同的 PHP 引擎和 HHVM
进行了基准测试; 包括 WordPress,Drupal,Joomla!,Laravel,Symfony 等。
我们还测试了流行的电子商务解决方案,如 WooCommerce,Easy Digital
Downloads,Magento 和 PrestaShop。

如果你记得我们在几个月前写过一篇文章,那时WordPress
3.9表明是完全支持HHVM的,当时是那么令我们欢欣鼓舞。最初的基准测试结果显示,HHVM要比驱动着当前所有PHP构建的Zend引擎高级得多。后来,问题就出来了:

我们一直鼓励 WordPress 用户利用最新的 支持的 PHP
版本
版本。 它们不仅更安全,而且还提供了额外的性能改进。
当然,我们并不是在谈论 WordPress,这在大多数平台上都是如此。
今天我们将向您展示 PHP 7.2 如何战无不胜!🚀

  • HHVM只能以单个用户运行,这意味着(在共享环境中)安全性差了
  • HHVM在崩溃后不会自动重启,而不幸的是,它至今仍然经常发生
  • HHVM在启动时使用大量内存,虽然,它和同规模的PHP-FPM比较,单个请求的内存使用量更低

今年的结果推翻了以往测试中 HHVM 的领先地位。 我们很高兴看到 PHP 7.2
在速度方面处于领先的引擎。 需要注意的是,WordPress 不再支持
HHVM
,后续会完全移除。 我们不再鼓励我们的客户迁移到
HHVM,并告知他们它对各平台支持不足的情况。

很显然,你不得不根据你的(或者更确切地说是你的站点)的需求采取折中方案,然而这值得吗?切换到HHVM后,你期望获得多少性能改善呢?

这对于开发人员和使用者来说都是好消息,因为这让他们精力转移到 PHP
上来,同时能够为每个人提供更快的网站和 web 服务。

在Kinsta,我们真的想要测试所有新技术,并通常会优化这一切来为我们的客户提供最佳的环境。今天,我最终花了点时间来配置测试环境并进行了一些测试来对比两个不同的构建,一个是全新出炉的WordPress安装,另外一个则添加了大量内容的WooCommerce!为了计量脚本的运行时间,我只是简单地添加了

PHP & HHVM 基准测试 (2018)

每一次测试,我们都使用每个平台的最新版本,并用15个并发用户进行一分钟的主页测试。以下是我们测试环境的具体配置。

  • 计算主机:8x Intel(R) Xeon(R) CPU @ 2.20GHz (由 Google
    云平台
    提供支持,并在独立的容器中运行 )

  • 操作系统:Ubuntu 16.04.3 LTS

  • Docker 环境:Debian 8、Nginx 1.13.8、MariaDB 10.1.31

  • PHP 引擎: 5.6、 7.0、7.1、 7.2

  • HHVM: 3.24.2

  • OPCache:WordPress、Joomla 和 Drupal 三个平台, 我们使用官方 docker
    镜像。其他平台我们都使用开启 OPcache 的镜像并使用以下php.ini
    配置文件。

    opcache.memory_consumption=128
    opcache.interned_strings_buffer=8
    opcache.max_accelerated_files=4000
    opcache.revalidate_freq=60
    opcache.fast_shutdown=1
    opcache.enable_cli=1
    

这些测试由 WordPress 的贡献者和支持工程师 Threatq
Firdaus
在 Kinsta 完成。他贡献了 WordPress 的核心代码和翻译了印尼版的
WordPress。

<?php timer_stop(1); ?>

PHP

PHP : Hypertext
Preprocessor(超文本处理器)。它是当今网络上最流行的脚本语言之一。据
W3Techs 称,所有服务器端编程语言的网站中,超过83%使用
PHP

这一行到footer.php的/body标记前。

HHVM

由于 PHP 的性能问题,Facebook 的 PHP 团队开发了 HipHop
虚拟机(HHVM)。它是一个使用即时(JIT)编译技术将
PHP 代码转换为机器语言以在 PHP
代码和运行它的底层硬件之间建立协同作用的系统。

这里是配置环境的详情:

测试的平台和配置

我们的测试包括以下20个平台/配置。 在某些平台下,由于缺乏对特定 PHP
版本的支持,我们不得不测试多个版本。
点击下面的标题直接跳到对应的测试记录和结果。
测试数据以每秒请求数来衡量。 当然请求数越多越好。

  • DigitalOcean 4GB 雨滴容器 (2 CPU核心, 4GB RAM)
  • Ubuntu 14.04, MariaDB10
  • 测试站点: 已导入演示内容的Munditia主题,WooCommerce 2.1.12 &
    WordPress 3.9.1
  • PHP 5.5.9, PHP 5.5.15, PHP 5.6.0 RC2, PHP-NG
    (20140718-git-6cc487d)和HHVM 3.2.0 (版本是PHP 5.6.99-hhvm)

WordPress 4.9.4

要测试是第一个平台当然是我们最喜欢的:
WordPress
(我们可能有点偏向于每天生存和呼吸着这个CMS 😉)。 WordPress
核心是你可以用来创建漂亮的网站,博客,或者app的开源软件。 实际上,
WordPress 支持着互联网上超过
全部网站29%
。 您访问的超过1/4的网站可能由 WordPress 提供支持。

针对 WordPress 基准测试, 我们使用免费的 Twenty Seventeen
theme。
我们使用来自 wptest.io
的虚拟内容及模拟15个用户的并发来基准测试首页一分钟。

  • 帖子数量: 10 个 / 页根据 wptest.io 生成
  • “搜索” 侧边栏是侧边栏上唯一发布的内容
  • Docker Image 源自于
    https://hub.docker.com/_/wordpress/

澳门新葡亰网址 3

image.png

WordPress 基准测试

没有进一步大费周章,这些就是我的测试结果,数值越低越好,以秒为单位:

基准测试结果

  • WordPress 4.9.4 PHP 5.6 基准测试结果: 49.18 请求/秒
  • WordPress 4.9.4 PHP 7.0 基准测试结果: 133.55 请求/秒
  • WordPress 4.9.4 PHP 7.1 基准测试结果: 134.24 请求/秒
  • WordPress 4.9.4 PHP 7.2 基准测试结果: 148.80 请求/秒 🏆
  • WordPress 4.9.4 HHVM 基准测试结果: 144.76 请求/秒

PHP 7.2 证明比 HHVM 稍快而获胜。 这与 2016 年 HHVM
明显获胜的基准测试有显著的变化。 PHP for WordPress 也更加稳定。
我们遇到了 HHVM 许多第一手问题。

DigitalOcean 4GB 雨滴容器

单位是秒,运行10次,越低越好

澳门新葡亰网址 4

看起来似乎PHP-NG在它首次运行后就获得了峰值性能!HHVM需要更多几次重载,但是它们的性能貌似差不多!我等不及PHP-NG合并到开发主干了!:)

一分钟命中数,越高越好。

澳门新葡亰网址 5

PHP 5.5.15禁用OpCache

  • 执行: 236 hits
  • 可用性: 100.00 %
  • 消耗时间: 59.03 secs
  • 传输的数据: 2.40 MB
  • 回应时间: 2.47 secs
  • 执行率: 4.00 trans/sec
  • 吞吐量: 0.04 MB/sec
  • 并发数: 9.87
  • 成功的执行: 236
  • 失败的执行: 0
  • 最长执行: 4.44
  • 最短执行: 0.48

PHP 5.5.15启用OpCache

  • 执行: 441 hits
  • 可用性: 100.00 %
  • 消耗时间: 59.55 secs
  • 传输的数据: 4.48 MB
  • 回应时间: 1.34 secs
  • 执行率: 7.41 trans/sec
  • 吞吐量: 0.08 MB/sec
  • 并发数: 9.91
  • 成功的执行: 441
  • 失败的执行: 0
  • 最长执行: 2.19
  • 最短执行: 0.64

PHP 5.6 RC2禁用OpCache

  • 执行: 207 hits
  • 可用性: 100.00 %
  • 消耗时间: 59.87 secs
  • 传输的数据: 2.10 MB
  • 回应时间: 2.80 secs
  • 执行率: 3.46 trans/sec
  • 吞吐量: 0.04 MB/sec
  • 并发数: 9.68
  • 成功的执行: 207
  • 失败的执行: 0
  • 最长执行: 3.65
  • 最短执行: 0.54

PHP 5.6 RC2启用OpCache

  • 执行: 412 hits
  • 可用性: 100.00 %
  • 消耗时间: 59.03 secs
  • 传输的数据: 4.18 MB
  • 回应时间: 1.42 secs
  • 执行率: 6.98 trans/sec
  • 吞吐量: 0.07 MB/sec
  • 并发数: 9.88
  • 成功的执行: 412
  • 失败的执行: 0
  • 最长执行: 1.93
  • 最短执行: 0.34

HHVM 3.2.0(版本是PHP 5.6.99-hhvm)

  • 执行: 955 hits
  • 可用性: 100.00 %
  • 消耗时间: 59.69 secs
  • 传输的数据: 9.18 MB
  • 回应时间: 0.62 secs
  • 执行率: 16.00 trans/sec
  • 吞吐量: 0.15 MB/sec
  • 并发数: 9.94
  • 成功的执行: 955
  • 失败的执行: 0
  • 最长执行: 0.85
  • 最短执行: 0.23

PHP-NG启用OpCache(构建: Jul 29 2014)

  • 执行: 849 hits
  • 可用性: 100.00 %
  • 消耗时间: 59.88 secs
  • 传输的数据: 8.63 MB
  • 回应时间: 0.70 secs
  • 执行率: 14.18 trans/sec
  • 吞吐量: 0.14 MB/sec
  • 并发数: 9.94
  • 成功的执行: 849
  • 失败的执行: 0
  • 最长执行: 1.06
  • 最短执行: 0.13

注意:这里节略了前一次的测试结果(有误),如感兴趣请访问原文查看。

WordPress 4.9.4 + WooCommerce 3.3.1

WooCommerce
是一个为 WordPress
构建的完全可自定义的开源电子商务平台。这也是目前最流行的电子商务结局方案之一,为互联网上超过
42%的电商平台
提供支持。

针对下一个测试,我们将 WordPressWooCommerce
一起安装。我们使用免费的
电商店面主题。

  • 产品数: 8 (2 个产品一行)
  • 设置商店页面为首页
  • Docker Image 源自于
    https://hub.docker.com/_/wordpress/

澳门新葡亰网址 6

image.png

WordPress + WooCommerce 基准测试

基准测试结果

  • WordPress 4.9.4 + WooCommerce 3.3.1 PHP 5.6 基准测试结果: 34.47
    请求/秒
  • WordPress 4.9.4 + WooCommerce 3.3.1 PHP 7.0 基准测试结果: 84.89
    请求/秒
  • WordPress 4.9.4 + WooCommerce 3.3.1 PHP 7.1 基准测试结果: 86.04
    请求/秒
  • WordPress 4.9.4 + WooCommerce 3.3.1 PHP 7.2 基准测试结果: 92.60
    请求/秒 🏆
  • WordPress 4.9.4 + WooCommerce 3.3.1 HHVM 基准测试结果: 69.58 请求/秒

WooCommerceHHVM 中表现挣扎,同时 PHP 7.2 略微超过 PHP 7.1

WordPress 4.9.4 + Easy Digital Downloads 2.8.18

Easy Digital
Downloads
(EDD), 由 Pippin Williamson 开发,是一款免费的 WordPress
电子商城插件,专注于帮助开发者销售网上商品。

看了 WooCommerce 的表现后,我们将 WordPressEDD 一起安装。
我们采用的是免费的 EDD
入门主题。

  • 产品数: 6 (插件的默认产品样本)
  • 产品列表里有两个图片丢失
  • Docker 镜像来自
    https://hub.docker.com/_/wordpress/

澳门新葡亰网址 7

image.png

WordPress + Easy Digital Downloads 基准测试

基准测试结果

  • WordPress 4.9.4 + EDD 2.8.18 PHP 5.6 基准测试结果: 76.71 请求/秒
  • WordPress 4.9.4 + EDD 2.8.18 PHP 7.0 基准测试结果: 123.83 请求/秒
  • WordPress 4.9.4 + EDD 2.8.18 PHP 7.1 基准测试结果: 124.82 请求/秒
  • WordPress 4.9.4 + EDD 2.8.18 PHP 7.2 基准测试结果: 135.74 请求/秒
    🏆(最佳)
  • WordPress 4.9.4 + EDD 2.8.18 HHVM 基准测试结果: 127.74 请求/秒

WordPressEDD的测试中, PHP 7.2 仍然胜出。

Drupal 8.4.4

Drupal
是一个开源的 CMS
Content Management System,即”内容管理系统”),由于它的模块化系统和强大的开发者社区而流行。它在2000年推出,
据 W3Techs 报道,Drupal 在所有网站中占比 2.2% ,在 CMS 市场中占比
4.4%
(详细调查)

对于 Drupal 的基准测试,我们采用 Bartik 8.4.4
主题。注意!
Drupal 8.4.x 不兼容 PHP 7.2
(详细信息),因此,我们没有测试
PHP 7.2

  • 帖子数量: 10 (由 Devel 模块生成)
  • 关闭页面缓存:
    https://www.drupal.org/node/2598914
  • Docker 镜像来自
    https://hub.docker.com/_/drupal/

澳门新葡亰网址 8

image.png

Drupal 基准测试

基准测试结果

  • Drupal 8.4.4 PHP 5.6 基准测试结果: 7.05 请求/秒
  • Drupal 8.4.4 PHP 7.0 基准测试结果: 15.94 请求/秒
  • Drupal 8.4.4 PHP 7.1 基准测试结果: 19.15 请求/秒
  • Drupal 8.4.4 PHP 7.2 基准测试结果: (不兼容)
  • Drupal 8.4.4 HHVM 基准测试结果: 19.57 请求/秒 🏆

由于 Drupal的最新版不支持 PHP 7.2HHVM 赢下了这局。 看 PHP
的前一个版本(7.1)的性能表现,我们可以大胆推测 PHP 7.2 将会更快!

Joomla! 3.8.5

Joomla!
是一个发布网页内容的免费而开源 CMS,最初发布于2005年8月17日。 他建立于
model--view--controller web 应用框架中,根据 W3Techs 他被互联网上
3.1%的所有网站
使用。

针对 Joomla! 基准测试, 我们使用免费的 Beez3
框架。

  • 帖子数量: 4 (在安装过程中按照的默认 Joomla 帖子)
  • 默认侧边栏未发布
  • Docker Image 源自于
    https://hub.docker.com/_/joomla/

澳门新葡亰网址 9

image.png

Joomla! 基准测试

基准测试结果

  • Joomla! 3.8.5 PHP 5.6 基准测试结果: 26.42 请求/秒
  • Joomla! 3.8.5 PHP 7.0 基准测试结果: 41.46 请求/秒
  • Joomla! 3.8.5 PHP 7.1 基准测试结果: 41.17 请求/秒
  • Joomla! 3.8.5 PHP 7.2 基准测试结果: 42.36 请求/秒
  • Joomla! 3.8.5 HHVM 基准测试结果: 51.84 请求/秒 🏆

Joomla! 我们可以看到在各个版本的 PHP 中稳步的性能提升。 但 HHVM
仍然领先。

Magento 2 (CE) 2.1.11 + 2.2.2

Magento 是用
PHP 编写的流行的开源电子商务平台,于2008年3月31日发布。 根据
W3Techs,它支持
所有互联网的1.2%。

对于 Magento 2 的基准测试,我们使用免费的 Luma
主题。我们使用了两个版本,因为
2.1.11 是唯一支持 PHP 5.6 的版本。
我们安装了样本数据和默认主题。对于其它的测试,我们使用 2.2.2
版本。Magento 2 目前还不支持 PHP 7.2 或者是最新版本的 HHVM。

  • 产品数量:7
  • http://pubfiles.nexcess.net/magento/ce-packages/

澳门新葡亰网址 10

image.png

Magento 2 基准测试

测试结果

  • Magento 2 (CE) 2.1.11 PHP 5.6 基准测试结果:10.75 请求/秒
  • Magento 2 (CE) 2.1.11 PHP 7.0 基准测试结果:20.87 请求/秒
  • Magento 2 (CE) 2.1.11 PHP 7.1 基准测试结果:29.84 请求/秒 🏆
  • Magento 2 (CE) 2.1.11 PHP 7.2 基准测试结果:不支持
  • Magento 2 (CE) 2.1.11 HHVM 基准测试结果:不支持

由于 PHP 7.2 和最新版本的 HHVM 都不支持 Magento 2,所以 PHP 7.1
是明显的赢家。通过每个版本都可以获得一致的性能提升,这一点令人印象深刻。

Grav CMS 1.3.10

Grav
是一个简单易用但功能强大的开源 CMS ,不需要数据库,有时也被称为平面文件
CMS 。

对于 Grav CMS 的基准测试,我们使用了免费的 Clean Blog
框架。值得注意的是
Grav CMS 已经不再与 HHVM 编译器兼容,它已经从 Travis 中 删除了 HHVM
环境。

  • 文章数量:4 (在 “Clean Blog” 框架中预设帖子)
  • 关闭页面/文件缓存
    https://learn.getgrav.org/advanced/performance-and-caching,Twig
    缓存仍可用。

澳门新葡亰网址 11

image.png

Grav CMS 基准测试

测试结果

  • Grav CMS 1.3.10 PHP 5.6 基准测试结果:34.83 请求/秒
  • Grav CMS 1.3.10 PHP 7.0 基准测试结果:53.37 请求/秒
  • Grav CMS 1.3.10 PHP 7.1 基准测试结果:53.37 请求/秒
  • 澳门新葡亰网址,Grav CMS 1.3.10 PHP 7.2 基准测试结果:55.12 请求/秒 🏆
  • Grav CMS 1.3.10 HHVM 基准测试结果:不支持

我们可以再次看到最新版本的 PHP (7.2) 在 Grav CMS 中是明显的赢家。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章

网站地图xml地图