针对7.4, 8.1, 8.2和8.3多个版本之间的PHP基准测试

针对7.4, 8.1, 8.2和8.3多个版本之间的PHP基准测试插图

2021年对于PHP来说是多事之秋。PHP 8.0已经一岁了,万众瞩目的PHP 8.1于2021年11月25日发布,带来了许多令人兴奋的功能。您可以在我们的深入文章中了解所有最新的PHP 8.1功能

我们针对各种PHP平台发布深入的性能基准测试,以了解不同的PHP版本如何相互叠加。今年,我们在14个独特的PHP平台/配置中对5个不同的PHP版本进行了基准测试,包括WordPress、Drupal、Joomla、Laravel、Symfony等等。我们还测试了其他流行的PHP平台,例如WooCommerceEasy Digital Downloads、October CMS和Grav。

我们始终鼓励使用受支持的最新PHP版本。它们不仅是最安全的,而且还提供了许多性能改进。今天,我们将向您展示PHP 8.0和8.1如何在几乎所有我们与之抗衡的事物中脱颖而出。

PHP 是最常用的服务器端编程语言之一,为约 76% 的活跃网站提供动力。每年,我们都会发布针对各种 PHP 框架的深度性能基准测试,以了解不同 PHP 版本之间的对比情况。

2023 年 12 月,我们对 11 个内容管理系统 (CMS) 和框架的 PHP 8.1、8.2 和 8.3 进行了基准测试: WordPressWooCommerceDrupal(第 7 版和第 10 版)、JoomlaLaravelSymfonyCodeIgniterCraft CMS、Typo3、Opencart 和 Statamic。我们还在 PHP 7.4 上对 WordPress 和 WooCommerce 进行了基准测试,因为许多网站仍在该版本上运行。

作为最佳实践,我们建议始终使用最新的 PHP 版本,以优化性能和安全性。

我们的 PHP 基准测试

为了评估内容管理系统或框架在最新 PHP 版本下的性能,我们进行了基准测试。为了保持一致性,我们对每个测试的 CMS 或框架都使用了相同的机器和参数。

本文中的基准测试在以下环境中进行:

  • 机器:英特尔 Cascade Lake(30 核 CPU),主频 3.10GHz,120GB 内存,1TB 硬盘。由谷歌云平台支持的计算优化(C2)虚拟机,在隔离容器中运行。
  • 操作系统:Ubuntu 20.04.6 LTS (Focal Fossa)。
  • 内容管理系统和框架:默认设置,在 nginx-fpm 上安装了 DDEV v1.22.5 amd64,作为基于1.22.0版本镜像的 --webserver-type
  • PHP 版本: 7.4.33, 8.1.26, 8.2.13, 8.3.0
  • 数据库ddev-dbserver-mariadb-10.4
  • 工具:ab – Apache HTTP 服务器基准测试工具
    • 并发量:同时 15 个请求。
      请求数:每个会话 1000 个请求。
    • 结果:以每秒请求数(req/s)表示。结果越高,响应速度越快。
  • 测试结果:每秒获得的请求数(req/s)。结果越高,响应越快。

内容管理系统和框架

PHP 以其丰富的框架和 CMS 库而闻名。我们在选择测试对象时考虑了几个方面,包括:

  • 受欢迎程度
  • 实时网站
  • 市场地位
  • 使用趋势
  • 搜索量(美国)

例如,WordPress 在整个内容管理系统市场上的份额高达 62%,拥有超过 3400 万个实时网站,而且随着时间的推移,其使用率也在急剧上升

另一方面,虽然 Statamic 在网络上的影响力较小,只有大约 10,000 个网站,但它的快速增长和日益普及引起了我们的关注。

我们还将 Symfony 包括在内。虽然与之前的飙升相比,Symfony 在过去几年中的受欢迎程度有所下降,但它仍然拥有许多活跃网站和庞大的月搜索量。

我们选择的其他内容管理系统和框架也符合同样的标准。

让我们来看看结果。

WordPress 基准测试

WordPress 是一种开源内容管理系统,让您无需任何编程知识就能轻松管理网站的重要方面。WordPress 对初学者非常友好,您不需要知道如何编写代码就可以安装和维护它,因此它对任何不懂编程的人来说都非常有吸引力,让他们可以创建自己的网站、博客或网店。

WordPress 支持超过 42% 的实时网站。换个角度看,WordPress 占所有知名内容管理系统的 62%

开源 WordPress 生态系统对于那些希望在一个强大、灵活、可靠的平台上构建应用程序的经验丰富的程序员来说是一个福音。

WordPress 还被广泛用作无头后端内容管理系统,适用于使用 ReactVue.js 等现代前端框架构建的应用程序。您可以将 WordPress 内容管理功能与 GatsbyHugoVuePressNext.js 等静态网站生成器结合使用。

您还可以为整个 WordPress 网站创建静态版本,以提高安全性和性能。这些现代方法首先为动态、时尚和闪亮的网络应用程序提供了一个可靠的平台,从而脱颖而出,吸引访客。

  • 测试版本:WordPress 6.2.2.
  • 测试链接:/
  • 页面大小:52,684,000 字节。
  • 测试结果:
    • PHP 7.4: 147 请求/秒。
    • PHP 8.1: 151 请求/秒。
    • PHP 8.2: 153 请求/秒。
    • PHP 8.3: 165 请求/秒。

WordPress 6.2.2 在 PHP 7.4、8.1、8.2 和 8.3 上的性能

WordPress 6.2.2 在 PHP 7.4、8.1、8.2 和 8.3 上的性能(以请求/秒为单位)。

WordPress 的 PHP 版本越新,性能越好。而且越新越好。对于关心 WordPress 网站安全和性能的人来说,升级到 PHP 8.3 是必须的。

要充分利用 WordPress,请学习如何提高网站速度。众所周知,WordPress 需要一个性能良好的服务器。

WooCommerce 基准测试

WooCommerce 是最常用的在线销售平台。它可以帮助商家和开发人员建立长期成功的业务。WooCommerce 拥有互联网上近 20% 的电子商务网站,它可定制、开源并基于 WordPress 构建。有了 WooCommerce,您就拥有了安全、成熟、可靠的在线销售基础设施。此外,您还可以利用 WordPress 的插件、WP-CLI、钩子、过滤器和 REST API 端点来管理您的商店。

  • 测试版本: 部署在 WordPress 6.2.2 上的 Woo 7.9.0。
  • 测试链接:/product/product/
  • 页面大小:57,470,000 字节。
  • 结果:
    • PHP 7.4: 48 请求/秒。
    • PHP 8.1: 49 请求/秒。
    • PHP 8.2: 49 请求/秒。
    • PHP 8.3: 58 请求/秒。

WooCommerce 7.9.0 在 WordPress 6.2.2、PHP 7.4、8.1、8.2 和 8.3 上的性能

WooCommerce 7.9.0 在 WordPress 6.2.2、PHP 7.4、8.1、8.2 和 8.3 上的性能(以请求/秒为单位)。

如果您的 WooCommerce 网站使用的是旧版本的 PHP,请考虑尽快升级,以获得 PHP 8.3 的性能提升。

Laravel 基准测试

Laravel 是一个开源 PHP 框架,为网络开发人员提供了构建现代 PHP 网络应用程序的工具和资源。命令行界面(Artisan)、本地身份验证和模型-视图-控制器(MVC)架构模式等内置功能使 Laravel 功能多样、易于使用,因而越来越受欢迎。

  • 测试版本:Laravel 10.16.1。
  • 测试链接:/
  • 页面大小:27,514,000 字节。
  • 测试结果:
    • PHP 8.1: 611 请求/秒。
    • PHP 8.2: 670 请求/秒。
    • PHP 8.3: 925 请求/秒。

Laravel 10.16.1 在 PHP 8.1、8.2 和 8.3 上的性能

Laravel 10.16.1 在 PHP 8.1、8.2 和 8.3 上的性能(以请求/秒为单位)。

当从 PHP 8.1 升级到 8.2 时,Laravel 的性能大幅提升。使用 PHP 8.3,性能比 8.2 又提高了 38%。升级到 8.3 完全没有问题。

Drupal 基准测试

Drupal 是一个功能强大、可扩展的内容管理系统,具有强大的标准功能,如简单的内容创作、可靠的性能、出色的安全性、灵活性和模块化,这是其核心原则之一。它的工具可以帮助你创建动态网络体验所需的多功能、结构化内容。

它是创建集成数字框架的最佳选择,因为你可以用许多附加组件来扩展它。Drupal 更像是一个 CMS 开发平台,而不是一个开箱即用的网站。

2011 年发布的 Drupal 7 一直是其使用率最高的版本,因此我们将其与 Drupal 10(其最新和改进最大的版本)一起进行了基准测试。

Drupal 7 的生命周期原定于 2023 年 12 月结束,但后来延长到了 2025 年 1 月,以便用户有更多时间进行迁移。

  • 测试版本:Drupal 10.1.1 和 7.98.
  • 测试链接:/
  • 页面大小:19,102,000 bytes (Drupal 10); 8,075,000 bytes (Drupal 7).
  • 结果 (Drupal 10):
    • PHP 8.1: 922 请求/秒。
    • PHP 8.2: 941 请求/秒。
    • PHP 8.3: 1432 请求/秒。
  • 结果 (Drupal 7):
    • PHP 8.1: 661 请求/秒。
    • PHP 8.2: 753 请求/秒。
    • PHP 8.3: 823 请求/秒。

Drupal 7.98 和 Drupal 10.1.1 在 PHP 8.1、8.2 和 8.3 上的性能

Drupal 7.98 和 Drupal 10.1.1 在 PHP 8.1、8.2 和 8.3 上的性能(以请求/秒为单位)。

如果您仍在使用旧版本的 Drupal,除了利用所有新功能和即将到来的改进之外,出于性能和安全考虑,请考虑更新它。对于大多数 Drupal 社区来说,Drupal 8、9 和 10 之间的更新是无缝的。值得从 7 升级到 8,以便为 Drupal 10 做好准备并快速运行。

从基准测试结果来看,从 Drupal 7 升级到 10 显然能显著提高性能。将 PHP 8.3 与 Drupal 10 结合使用,可以极大地提高速度,满足访客的需求,让他们持续参与进来,因此升级是最明智之举。

Joomla 基准测试

Joomla 是一种流行的开源内容管理系统,基于模型-视图-控制器网络应用程序框架,可独立于内容管理系统用于构建在线应用程序。它的特点是系统灵活,扩展库庞大,易于扩展和定制。Joomla 具有内置的搜索优化功能,并因在漏洞传播之前迅速发布安全补丁而享有盛誉。

  • 测试版本: Joomla 4.3.3.
  • 测试链接:/
  • 页面大小:8,111,000 字节。
  • 测试结果:
    • PHP 8.1: 274 请求/秒。
    • PHP 8.2: 265 请求/秒。
    • PHP 8.3: 341 请求/秒。

Joomla 4.3.3 在 PHP 8.1、8.2 和 8.3 上的性能

Joomla 4.3.3 在 PHP 8.1、8.2 和 8.3 上的性能(以请求/秒为单位)。

在我们的测试中,Joomla 的 PHP 8.1 和 8.2 基准差异不大。而 PHP 8.3 的性能则提高了近 30%,因此 8.3 是运行网站的最明智选择。

Symfony 基准测试

Symfony 是一个丰富、灵活的后端框架,适用于复杂的应用程序。它的 MVC 架构提供了专为构建系统化、可扩展的 PHP 网络应用程序而设计的工具和功能,包括支持多种环境和强大的缓存系统。

它在开源社区中很受欢迎,并提供了大量组件和捆绑包。对于实现长期业务目标和吸引大量受众的网站来说,Symfony 是一个不错的选择。

  • 测试版本: Symfony 6.3.0.
  • 测试链接:/
  • 大小: 559,000 字节。
  • 结果:
    • PHP 8.1: 931 请求/秒。
    • PHP 8.2: 997 请求/秒。
    • PHP 8.3: 1182 请求/秒。

Symfony 6.3.0 在 PHP 8.1、8.2 和 8.3 上的性能

Symfony 6.3.0 在 PHP 8.1、8.2 和 8.3 上的性能(以请求/秒为单位)。

Symfony 本身速度就很快。在我们的测试中,PHP 8.1 和 8.2 的性能相差无几,但 8.3 比它们都要快。

CodeIgniter 基准测试

CodeIgniter 是一个 PHP 框架,专为需要简单工具包来创建全功能网络应用程序的开发人员而设计。它采用 MVC 方法来培养简洁性。它的核心系统占用空间极小,只需要几个小型库,其默认登陆页面的性能优于我们测试过的所有平台和框架。您可以从小规模开始,速度快得令人难以置信,然后根据需要进行扩展。

  • 测试版本:CodeIgniter 4.3.6.
  • 测试链接: /
  • 页面大小:17,776,993 字节。
  • 测试结果:
    • PHP 8.1: 1120 请求/秒。
    • PHP 8.2: 1180 请求/秒。
    • PHP 8.3: 1684 请求/秒。

CodeIgniter 4.3.6 在 PHP 8.1、8.2 和 8.3 上的性能

CodeIgniter 4.3.6 在 PHP 8.1、8.2 和 8.3 上的性能(以请求/秒为单位)。

CodeIgniter 的默认安装速度很快,非常快。PHP 8.1 和 8.2 的基准测试结果相似,8.2 略快于 8.1。PHP 8.3 的性能提高了 42%,因此升级 PHP 8.3 是完全没有问题的。

Craft CMS 基准测试

Craft CMS 是一个开源平台,专为创建营销和电子商务网站而设计。Craft 的理念是围绕内容而不是相反来构建 CMS。凭借直观的用户界面和完全可定制的后台,Craft 可充分利用内容创建功能,让您可以将更多时间用于制作内容,而不是用于构建网站。

  • 测试版本:Craft 4.4.16.1.
  • 测试链接: /
  • 页面大小:6,594,000 字节。
  • 测试结果:
    • PHP 8.1: 358 请求/秒。
    • PHP 8.2: 354 请求/秒。
    • PHP 8.3: 443 请求/秒。

Craft CMS 4.4.16.1 在 PHP 8.1、8.2 和 8.3 上的性能

Craft CMS 4.4.16.1 在 PHP 8.1、8.2 和 8.3 上的性能(以请求/秒为单位)。

在 PHP 8.1 和 8.2 上运行时,Craft 的性能类似,但 PHP 8.3 又将网站性能提高了约 25%。

OpenCart 基准测试

OpenCart 是一个开放源码的电子商务管理平台,可以从一个后台处理一个或多个在线商店。OpenCart 拥有友好的用户界面,使网站管理员和终端用户可以更轻松地进行导航。我们的理念是,您只需花最少的精力就能创建并运行一个网店,然后使用可用的扩展功能对其进行定制。

  • 测试版本:OpenCart 4.0.2.2.
  • 测试链接:/
  • 页面大小:33,014,000 字节。
  • 测试结果:
    • PHP 8.1: 151 请求/秒。
    • PHP 8.2: 154 请求/秒。
    • PHP 8.3: 164 请求/秒。

OpenCart 4.0.2.2 在 PHP 8.1、8.2 和 8.3 上的性能

OpenCart 4.0.2.2 在 PHP 8.1、8.2 和 8.3 上的性能(以请求/秒为单位)。

OpenCart 在 PHP 8.1 上运行流畅,在 8.2 上运行速度稍快,而 8.3 则大大提高了它的性能,并邀请您升级。

Statamic 基准测试

Statamic 是基于 Laravel 的开源内容管理系统。它是一个高度灵活的框架,可以将内容、模板、资产和设置存储在文件而不是数据库中,从而使版本控制变得轻而易举。它能适应你的需求,让你边做边建。如果你的内容在数据库中,你可以将它连接到数据库。你还可以导出到静态网站,在前端无需使用 Laravel 和 PHP。

  • 测试版本:Statamic 4.13.2.
  • 测试链接:/
  • 页面大小:7,233,000 字节。
  • 测试结果:
    • PHP 8.1: 58 请求/秒。
    • PHP 8.2: 64 请求/秒。
    • PHP 8.3: 72 请求/秒。

Statamic 4.13.2 在 PHP 8.1、8.2 和 8.3 上的性能

Statamic 4.13.2 在 PHP 8.1、8.2 和 8.3 上的性能(以请求/秒为单位)。

每次 PHP 小版本升级,Statamic 的性能都会提高。使用 PHP 8.2,速度比 8.1 提高约 10%。升级到 8.3 会提高约 12%。

Typo3 基准测试

Typo3 是一个开源内容管理系统,采用多层系统,提供 API 以访问数据库中记录的信息,如内容、用户权限和访问、内容编辑和文件管理。Typo3 可通过插件、后台模块、皮肤和第三方应用程序进行扩展。它是一个强大而可靠的系统,甚至可以支持大型网站

  • 测试版本:Typo3 12.4.4.
  • 测试链接:/
  • 页面大小:2,085,000 字节。
  • 测试结果:
    • PHP 8.1: 509 请求/秒。
    • PHP 8.2: 461 请求/秒。
    • PHP 8.3: 598 请求/秒。

Typo3 12.4.4 在 PHP 8.1、8.2 和 8.3 上的性能

Typo3 12.4.4 在 PHP 8.1、8.2 和 8.3 上的性能(以请求/秒为单位)。

在我们的测试中,Typo3 在 PHP 8.1 下的性能略好于 8.2,这一点令人惊讶。但考虑到出色的性能和更高的安全性,升级到 8.3 是最好的选择。

PHP 的故事

PHP 于 1994 年由 Rasmus Lerdorf 创建,1995 年向公众发布,因其与数据库通信的能力而广受欢迎。从那时起,PHP 逐步采用面向对象编程模式,发展成为一种成熟、灵活、健壮的模块化语言,注重可重用性和可维护性。

PHP 广泛的库和框架生态系统使其更受欢迎,也更易于开发。其结果是增强了安全性和附加功能,使 PHP 成为构建智能、动态和复杂网络应用程序的可靠选择。

2015 年 12 月发布的 PHP 7 对性能进行了重大改进,是迄今为止速度最快、效率最高的 PHP 主版本。在此基础上,PHP 8.0、8.18.2 带来了许多新功能和优化,并进一步提高了一致性和性能。

2023 年 11 月发布的 PHP 8.3 引入了新函数、改进了 readonly 类、增加了最近添加的 Randomizer 类、堆栈溢出检测、提高了性能等等。

PHP 仍是网络应用程序的主要编程语言。超过 76% 的网站使用服务器端脚本:

服务器端网络应用程序的分布

服务器端网络应用程序的分布(W3Techs)。

如果我们看一下服务器端编程语言的市场地位,就会发现 JavaScript 在高流量应用程序的开发者中很受欢迎,而 PHP 则出现在更多的网站上。

服务器端编程语言的市场地位

服务器端编程语言的市场地位。(W3Techs

许多强大和高流量的网站都使用 PHP,包括:

  • Facebook.com
  • Microsoft.com
  • Wikipedia.org
  • WordPress.org
  • Vimeo.com
  • MSN.com
  • WordPress.com
  • Mozilla.org

多年来,PHP 凭借其强大的构造、一致性、维护性和灵活性,一直保持着领先地位:

编程语言的长期使用情况

编程语言的长期使用情况 (W3Techs)

尽管 PHP 的开发人员会定期推出更新和改进,但用户有时对升级到最新版本心存疑虑。这可能是个错误。任何应用程序的最新稳定版本都是最丰富、最安全的。

当 PHP 8.0 发布时,社区中的许多人对升级感到不安,担心与其前一个兄弟版本 7.4 不兼容。此外,许多网络托管服务提供商根本没有努力让他们的客户接受新版本。

PHP 7.4 仍然是采用最多的子版本,在 40% 采用 PHP 的网站中都能找到它的身影。

PHP 各版本的使用情况

PHP 各版本的使用情况

如果您使用的是旧版本的 PHP,可以考虑从次要版本到次要版本逐步升级,并在中间进行必要的调整。这个过程不容易出错。例如,不要尝试直接从 7.4 升级到 8.3。先升级到 8.0,然后进行调整和测试。然后,升级到 8.1,进行调整和测试。然后升级到 8.2,最后升级到 8.3。

注:升级您经常使用的所有软件有助于提高互联网的速度和安全性。

小结

简而言之,大多数经过测试的内容管理系统和框架都能在较新的 PHP 版本下运行得更好。在可能的情况下,选择在最新版本的技术栈中运行应用程序。

所有测试的内容管理系统和框架在 PHP 7.4、8.1、8.2 和 8.3 上的性能

所有测试的内容管理系统和框架在 PHP 7.4、8.1、8.2 和 8.3 上的性能(以请求/秒为单位)。

PHP 8.3 提供了出色的结果。除了新功能和更新外,8.3 还被证明是我们测试中速度最快的版本,为受测的 CMS 和框架提供了高达 52.20% 的性能提升。

PHP 8.3 与 PHP 8.2 相比的性能提升

PHP 8.3 与 PHP 8.2 相比的性能提升(%)。

在官方迁移指南中了解如何从 PHP 8.2 迁移到 8.3

说到网站和应用程序的性能,一切都要从良好的托管开始。如果服务器是瓶颈,那么即使您在应用程序优化方面投入巨资也无济于事。

如果在您最需要的时候,您的服务器无法处理大流量高峰,那么您花再多钱购买便宜的主机也是不值得的。如果网站经常不可用,再漂亮的网站也没有用。

评论留言