PHP 8.1、8.2 和 8.3 的权威基准

wp-php-benchmarks-8.1-8.2-8.3

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

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

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

目录

  1. 我们的 PHP 基准测试
  2. WordPress
  3. WooCommerce
  4. Laravel
  5. Drupal
  6. Joomla
  7. Symfony
  8. CodeIgniter
  9. Craft CMS
  10. OpenCart
  11. Statamic
  12. Typo3
  13. PHP 故事

我们的 PHP 基准测试

为了评估 CMS 或框架与最近的 PHP 版本相比的性能,我们运行了基准测试。为了保持一致性,我们对每个测试的 CMS 或框架使用相同的机器和参数。

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

  • 机器:Intel Cascade Lake(30 核 CPU)@ 3.10GHz,120GB RAM,1TB HDD。由 Google Cloud Platform 提供支持并在隔离容器中运行的计算优化 (C2) 虚拟机。
  • 操作系统: Ubuntu 20.04.6 LTS (Focal Fossa).
  • CMS 和框架:默认设置,随 DDEV v1.22.5 一起安装,基于映像版本 1.22.0。amd64nginx-fpm--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) 为单位获取。结果越高,响应越快。

CMS 和框架

PHP 以其广泛的框架和 CMS 库而闻名。在选择要测试的内容时,我们考虑了几个方面,包括:

  • 人气
  • 实时网站
  • 市场地位
  • 使用趋势
  • 搜索量(美国)

例如,WordPress 一直大放异彩,占整个 CMS 市场的 62%,拥有超过 3400 万个实时网站,并且随着时间的推移,使用量急剧增加。

另一方面,虽然 Statamic 在网络上的足迹较小,拥有大约 10,000 个实时站点,但其急剧增长和日益普及引起了我们的注意。

我们还包括 Symfony。尽管与之前的峰值相比,Symfony 的受欢迎程度在过去几年中一直在下降,但 Symfony 仍然有许多活跃的网站和大量的月搜索量。

我们选择进行基准测试的其他 CMS 和框架也符合相同的标准。

所有 CMS 和框架都使用其默认安装设置进行了测试。

让我们来看看结果。

WordPress (英文)

WordPress 是一个开源 CMS,无需对编程一无所知,即可轻松管理网站的重要方面。WordPress 对初学者友好,您无需知道如何编码即可安装和维护它,这使得它对任何不是程序员的人都非常有吸引力来启动他们的网站、博客或网上商店。

WordPress 支持超过 42% 的实时网站。从另一个角度来看,占所有知名 CMS 的 62%。

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

WordPress 还被广泛用作无头后端 CMS,用于使用 React、Vue.js 等现代前端框架构建的应用程序。您可以将 WordPress 内容管理功能与 Gatsby、Hugo、VuePress 和 Next.js 等静态站点生成器一起使用。

您可以创建整个 WordPress 网站的静态版本,以提高安全性和增强性能。这些现代方法从一个可靠的平台开始,让动态、时尚和闪亮的 Web 应用程序脱颖而出并吸引访问者。

WordPress 基准测试

  • 测试版本:WordPress 6.4.2 和 6.2.2。
  • 测试的 URL: /
  • 大小:84,257,000 字节 (WordPress 6.4.2);52,684,000 字节 (WordPress 6.2.2)。
  • WordPress 6.4.2 的结果:
    • PHP 7.4:149 分辨率/秒。
    • PHP 8.1: 153 请求/秒。
    • PHP 8.2: 158 请求/秒。
    • PHP 8.3: 169 请求/秒。
  • WordPress 6.2.2 的结果:
    • PHP 7.4:147 分辨率/秒。
    • PHP 8.1: 151 请求/秒。
    • PHP 8.2: 153 请求/秒。
    • PHP 8.3: 165 请求/秒。
phpbench2023-wordpress-v2
PHP 7.4、8.1、8.2 和 8.3 上的 WordPress 6.4.2 和 6.2.2 性能(以请求/秒为单位)。

WordPress 使用较新的 PHP 版本时表现更好。而且越新越好。对于任何关心其 WordPress 网站的安全性和性能的人来说,升级到 PHP 8.3 都是必须的。

作为更新,我们还对 WordPress 6.4.2 进行了基准测试。它在所有 PHP 版本中都优于其哥哥。可能是 6.2.2,结果显示它在较新的 PHP 版本中表现更好。从 PHP 8.2 到 8.3 的速度增益约为 7%,类似于我们使用 WordPress 6.2.2 获得的速度。

WooCommerce

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

WooCommerce 基准

  • 测试版本:在 WordPress 6.2.2 上 Woo 7.9.0。
  • 测试的 URL: /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 performance on WordPress 6.2.2
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 框架,为 Web 开发人员提供构建现代 PHP Web 应用程序的工具和资源。内置功能,如命令行界面 (Artisan)、本机身份验证和模型-视图-控制器 (MVC) 架构模式,使 Laravel 用途广泛且易于使用,有助于其越来越受欢迎。

Laravel 基准测试

  • 测试版本:拉拉维尔 10.16.1.
  • 测试的 URL: /
  • 大小:27,514,000 字节。
  • 结果:
    • PHP 8.1: 611 次/秒。
    • PHP 8.2: 670 请求/秒。
    • PHP 8.3: 925 请求/秒。
Laravel 10.16.1 performance on PHP 8.1_ 8.2
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 是一个功能强大且可扩展的 CMS,具有出色的标准功能,例如简单的内容创作、可靠的性能、出色的安全性、灵活性和模块化,这是其核心原则之一。它的工具可帮助您构建动态 Web 体验所需的多功能结构化内容。

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

2011 年发布的 Drupal 7 仍然是其最常用的版本,因此我们将其与最新和改进最多的版本 Drupal 10 进行了基准测试。

Drupal 7 原定于 2023 年 12 月终止使用,但已延长至 2025 年 1 月,以便为用户提供更多迁移时间。

Drupal 基准测试

  • 测试版本:Drupal 10.1.1 和 7.98。
  • 测试的 URL: /
  • 大小:19,102,000 字节 (Drupal 10);8,075,000 字节 (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 and Drupal 10.1.1 performance on PHP
Drupal 7.98 和 Drupal 10.1.1 在 PHP 8.1、8.2 和 8.3 上的性能(以请求/秒为单位)。

如果您仍在使用较旧的 Drupal 版本,请考虑出于性能和安全原因对其进行更新,而不是利用所有新功能和任何即将推出的改进。Drupal 8、9 和 10 之间的更新对于其社区的大多数人来说被认为是无缝的。从 7 升级到 8 是为 Drupal 10 做准备并快速启动和运行是值得的。

从基准测试结果可以明显看出,从 Drupal 7 升级到 10 可以显著提高性能。将 PHP 8.3 与 Drupal 10 结合使用可大幅提升速度,以满足访问者的需求并保持他们的参与度,使升级成为最明智的举措。

Joomla

Joomla 是一种流行的开源 CMS,构建在模型-视图-控制器 Web 应用程序框架之上,可以独立于 CMS 用于构建在线应用程序。它具有一个灵活的系统,由于其庞大的扩展库,因此易于扩展和自定义。Joomla 具有内置的搜索优化功能,并在漏洞利用传播之前快速发布安全补丁方面享有盛誉。

Joomla 基准测试

  • 测试版本:Joomla 4.3.3.
  • 测试的 URL: /
  • 大小:8,111,000 字节。
  • 结果:
    • PHP 8.1: 274 请求/秒。
    • PHP 8.2: 265 请求/秒。
    • PHP 8.3: 341 请求/秒。
Joomla 4.3.3 performance on PHP 8.1_ 8.2
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 Web 应用程序而设计的工具和功能,包括对多个环境和强大的缓存系统的支持。

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

Symfony 基准测试

  • 测试版本:Symfony 6.3.0 版本。
  • 测试的 URL: /
  • 大小:559,000 字节。
  • 结果:
    • PHP 8.1: 931 请求/秒。
    • PHP 8.2: 997 次/秒。
    • PHP 8.3: 1182 请求/秒。
Symfony 6.3.0 performance on PHP 8.1_ 8.2
Symfony 6.3.0 在 PHP 8.1、8.2 和 8.3 上的性能(以请求/秒为单位)。

Symfony 天生就很快。在我们的测试中,PHP 8.1 和 8.2 的表现相似,但 8.3 的表现优于它们。

CodeIgniter

CodeIgniter 是一个 PHP 框架,专为需要简单工具包来创建功能齐全的 Web 应用程序的开发人员而构建。它采用 MVC 方法来培养简单性。对于只需要几个小型库的核心系统来说,其默认登录页面占用的空间最小,其性能优于我们测试的所有平台和框架。您可以从小处着手,以令人难以置信的速度开始,然后根据需要进行构建。

CodeIgniter 基准测试

  • 测试版本:CodeIgniter 4.3.6 的源代码。
  • 测试的 URL: /
  • 大小:17,776,993 字节。
  • 结果:
    • PHP 8.1:1120 请求/秒。
    • PHP 8.2:1180 请求/秒。
    • PHP 8.3: 1684 请求/秒。
CodeIgniter 4.3.6 performance on PHP 8.1_ 8.2
CodeIgniter 4.3.6 在 PHP 8.1、8.2 和 8.3 上的性能(以请求/秒为单位)。

CodeIgniter 在其默认安装中是快速的 — 非常快。8.1 和 8.2 的 PHP 基准测试结果相似,8.2 比 8.1 略快。PHP 8.3 全面推出,性能提升 42%,使升级变得轻而易举。

Craft CMS

Craft CMS 是一个开源平台,专为创建营销和电子商务网站而设计。Craft 的理念是围绕您的内容对 CMS 进行建模,而不是相反。凭借直观的用户界面和完全可定制的后端,Craft 利用内容创建,因此您可以花更多时间制作内容,减少构建网站的时间。

制作 CMS 基准测试

  • 测试版本:制作 4.4.16.1.
  • 测试的 URL: /
  • 大小:6,594,000 字节。
  • 结果:
    • PHP 8.1: 358 请求/秒。
    • PHP 8.2: 354 请求/秒。
    • PHP 8.3: 443 请求/秒。
Craft CMS 4.4.16.1 performance on PHP 8.1_ 8.2
在 PHP 8.1、8.2 和 8.3 上制作 CMS 4.4.16.1 性能(以请求/秒为单位)。

在 PHP 8.1 和 8.2 上运行,Craft 的性能类似,但 PHP 8.3 再次出现,可将您的网站性能提高约 25%。

OpenCart

OpenCart 是一个开源的电子商务管理平台,可以从单个后端处理一个或多个在线商店。OpenCart 具有用户友好的界面,使站点管理员和最终用户的导航更加轻松。这个想法是,您可以以最少的努力启动并运行在线商店,然后使用可用的扩展对其进行自定义。

OpenCart 基准测试

  • 测试版本:OpenCart 4.0.2.2 版本。
  • 测试的 URL: /
  • 大小:33,014,000 字节。
  • 结果:
    • PHP 8.1: 151 请求/秒。
    • PHP 8.2: 154 请求/秒。
    • PHP 8.3: 164 请求/秒。
OpenCart 4.0.2.2 performance on PHP 8.1_ 8.2
OpenCart 4.0.2.2 在 PHP 8.1、8.2 和 8.3 上的性能(以请求/秒为单位)。

OpenCart 在 PHP 8.1 上运行流畅,在 8.2 上略快,而 8.3 则给了它相当大的推动力,邀请您升级。

Statamic

Statamic 是构建在 Laravel 之上的开源 CMS。它是一个高度灵活的框架,可以将其内容、模板、资产和设置存储在文件而不是数据库中,使版本控制变得轻而易举。它适应您的需求,让您边走边建。如果这是您的内容所在的数据库,您可以将其连接到数据库。您可以导出到静态站点,只需在前端删除 Laravel 和 PHP。

Statamic 基准测试

  • 测试版本:统计 4.13.2.
  • 测试的 URL: /
  • 大小:7,233,000 字节。
  • 结果:
    • PHP 8.1: 58 请求/秒。
    • PHP 8.2: 64 请求/秒。
    • PHP 8.3: 72 请求/秒。
Statamic 4.13.2 performance on PHP 8.1_ 8.2
PHP 8.1、8.2 和 8.3 上的 Statamic 4.13.2 性能(以请求/秒为单位)。

Statamic 的性能会随着每次 PHP 次要版本升级而提高。使用 PHP 8.2 时,速度比 8.1 提高约 10%。升级到 8.3 可为您提供约 12% 的提升。

请注意,我们使用默认配置安装并测试了 Statamic,其中包括激活开发人员模式。如果在生产模式下运行它,则性能可能会提高。

Typo3

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

Typo3 基准测试

  • 测试版本:错别字 3 12.4.4.
  • 测试的 URL: /
  • 大小:2,085,000 字节。
  • 结果:
    • PHP 8.1:509 次/秒。
    • PHP 8.2: 461 请求/秒。
    • PHP 8.3: 598 请求/秒。
Typo3 12.4.4 performance on PHP 8.1_ 8.2
Typo3 12.4.4 在 PHP 8.1、8.2 和 8.3 上的性能(以请求/秒为单位)。

在我们的测试中,Typo3 在 PHP 8.1 中的表现略好于在 PHP 8.2 中,这令人惊讶。但考虑到出色的性能和增强的安全性,升级到 8.3 是您最好的选择。

PHP 故事

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

PHP 广泛的库和框架生态系统有助于其流行和易于开发。结果是增强的安全性和附加功能,使 PHP 成为构建智能、动态和复杂 Web 应用程序的可靠选择。

PHP 7 于 2015 年 12 月发布,引入了显著的性能改进,从而产生了迄今为止最快、最高效的 PHP 主要版本。最重要的是,PHP 8.0、8.1 和 8.2 带来了许多新功能和优化,以及对一致性和性能的进一步改进。

PHP 8.3 于 2023 年 11 月发布,引入了新功能、对类的改进、对最近添加的类的添加、堆栈溢出检测、提高性能等等。

PHP 使用情况统计

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

Distribution of server-side powered web apps
分发服务器端支持的 Web 应用程序 (W3Techs)。

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

Market positions among server-side programming languages
服务器端编程语言的市场地位。(w3techs)

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

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

由于其强大的结构、一致性、维护和灵活性,PHP 多年来一直保持其领导地位:

Programming languages usage through time
编程语言随时间的变化 (W3Techs)

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

当 PHP 8.0 发布时,社区中的许多人都对升级感到不安,担心与之前的兄弟 7.4 不兼容。此外,许多 Web 托管提供商根本没有努力让他们的客户使用新版本。

PHP 7.4 仍然是采用最多的 subversion,在 40% 的 PHP 驱动的网站中被发现。

PHP subversion usage
PHP subversion 用法

如果您使用的是较旧的 PHP 版本,请考虑逐步升级,从次要版本升级到次要版本,并在两者之间进行必要的调整。此过程不太容易出错。例如,不要尝试从 7.4 直接升级到 8.3。首先升级到 8.0,然后进行调整和测试。然后,升级到 8.1、调整和测试。然后,升级到 8.2,最后升级到 8.3。

总结

简而言之,大多数测试的 CMS 和框架在较新的 PHP 版本中表现更好。尽可能选择在您使用的技术堆栈的最新版本中运行您的应用程序。

Performance of all tested CMSs and frameworks
所有经过测试的 CMS 和框架在 PHP 7.4、8.1、8.2 和 8.3 上的性能(以请求/秒为单位)。

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

Performance increase of PHP 8.3 over PHP 8.2
PHP 8.3 的性能比 PHP 8.2 提高了 (%)。

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



评论

发表回复

必填项已用 * 标注