我们每年都会尝试深入了解不同版本的 PHP 和 HHVM 在各种平台的性能基准 今年, 我们全面对 20 种不同平台 / 配置中的四种不同的 PHP 引擎和 HHVM 进行了基准测试; 包括 WordPress,Drupal,Joomla!,Laravel,Symfony 等 我们还测试了流行的电子商务解决方案, 如 WooCommerce,Easy Digital Downloads,Magento 和 PrestaShop
我们一直鼓励 WordPress 用户利用最新的 支持的 PHP 版本 版本 它们不仅更安全, 而且还提供了额外的性能改进 当然, 我们并不是在谈论 WordPress, 这在大多数平台上都是如此 今天我们将向您展示 PHP 7.2 如何战无不胜!
今年的结果推翻了以往测试中 HHVM 的领先地位 我们很高兴看到 PHP 7.2 在速度方面处于领先的引擎 需要注意的是, WordPress 不再支持 HHVM , 后续会完全移除 我们不再鼓励我们的客户迁移到 HHVM, 并告知他们它对各平台支持不足的情况
这对于开发人员和使用者来说都是好消息, 因为这让他们精力转移到 PHP 上来, 同时能够为每个人提供更快的网站和 web 服务
PHP & HHVM 基准测试 (2018)
每一次测试, 我们都使用每个平台的最新版本, 并用 15 个并发用户进行一分钟的主页测试以下是我们测试环境的具体配置
计算主机: 8x Intel(R) Xeon(R) CPU @ 2.20GHz (由 Google 云平台 提供支持, 并在独立的容器中运行 )
操作系统: Ubuntu 16.04.3 LTS
Docker 环境: Debian 8Nginx 1.13.8MariaDB 10.1.31
PHP 引擎: 5.6 7.07.1 7.2
HHVM: 3.24.2
OPCache:WordPressJoomla 和 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
PHP : Hypertext Preprocessor(超文本处理器)它是当今网络上最流行的脚本语言之一据 W3Techs 称, 所有服务器端编程语言的网站中, 超过 83%使用 PHP
HHVM
由于 PHP 的性能问题, Facebook 的 PHP 团队开发了 HipHop 虚拟机 (HHVM) 它是一个使用即时 (JIT) 编译技术将 PHP 代码转换为机器语言以在 PHP 代码和运行它的底层硬件之间建立协同作用的系统
测试的平台和配置
我们的测试包括以下 20 个平台 / 配置 在某些平台下, 由于缺乏对特定 PHP 版本的支持, 我们不得不测试多个版本 点击下面的标题直接跳到对应的测试记录和结果 测试数据以每秒请求数来衡量 当然请求数越多越好
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/_/word...
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 许多第一手问题
WordPress 4.9.4 + WooCommerce 3.3.1
WooCommerce 是一个为 WordPress 构建的完全可自定义的开源电子商务平台这也是目前最流行的电子商务结局方案之一, 为互联网上超过 42% 的电商平台 提供支持
针对下一个测试, 我们将 WordPress 同 WooCommerce 一起安装我们使用免费的 电商店面主题
产品数: 8 (2 个产品一行)
设置商店页面为首页
Docker Image 源自于 https://hub.docker.com/_/word...
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 请求 / 秒
WooCommerce 在 HHVM 中表现挣扎, 同时 PHP 7.2 略微超过 PHP 7.1
WordPress 4.9.4 + Easy Digital Downloads 2.8.18
Easy Digital Downloads (EDD), 由 Pippin Williamson 开发, 是一款免费的 WordPress 电子商城插件, 专注于帮助开发者销售网上商品
看了 WooCommerce 的表现后, 我们将 WordPress 和 EDD 一起安装 我们采用的是免费的 EDD 入门主题
产品数: 6 (插件的默认产品样本)
产品列表里有两个图片丢失
Docker 镜像来自 https://hub.docker.com/_/word...
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 请求 / 秒
在 WordPress 和 EDD 的测试中, 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/2...
Docker 镜像来自 https://hub.docker.com/_/drupal/
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.2 , HHVM 赢下了这局 看 PHP 的前一个版本 (7.1) 的性能表现, 我们可以大胆推测 PHP 7.2 将会更快!
Joomla! 3.8.5
model--view--controller
web 应用框架中, 根据 W3Techs 他被互联网上 3.1% 的所有网站 使用
针对 Joomla! 基准测试, 我们使用免费的 Beez3 框架
帖子数量: 4 (在安装过程中按照的默认 Joomla 帖子)
默认侧边栏未发布
Docker Image 源自于 https://hub.docker.com/_/joomla/
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 2 的基准测试, 我们使用免费的 Luma 主题我们使用了两个版本, 因为 2.1.11 是唯一支持 PHP 5.6 的版本 我们安装了样本数据和默认主题对于其它的测试, 我们使用 2.2.2 版本 Magento 2 目前还不支持 PHP 7.2 或者是最新版本的 HHVM
产品数量: 7
http://pubfiles.nexcess.net/m...
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/adv...,Twig 缓存仍可用
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 中是明显的赢家
October CMS 1.0.433
- composer dump-autoload --classmap-authoritative
- ,
- php artisan optimize --force
- ,
- php artisan config:cache
- ,
- php artisan route:cache
来源: https://segmentfault.com/a/1190000013690281