PHP 8.1性能基准测试结果出炉,相比7.0整体提升44%

日前 Phoronix 发布了针对 PHP 8.1的性能基准测试报告。PHP 8.1是今年的一个重要版本更新,尤其是引入枚举功能和不少新函数,如新增 array_is_list 函数等,此外,正如我们所看到的,在 PHP 5.x 时代后期以来,其性能一直在不断提高。

此次测试是在运行 Ubuntu Linux 的 AMD EPYC 72F3 服务器上进行的。所有受测试的版本都是在同一个系统上用相同的软件包和相同的构建选项重新构建的。用于参考对比的版本包括:PHP 8.1、PHP 8.0.13、PHP 7.4.26、PHP 7.3.33、PHP 7.0.33 和 PHP 5.6.40。PHP 7.1/7.2 则因为在这个堆栈中构建和运行时出现了分段故障而被排除在外。

继续保持良好的性能轨迹

图一显示了使用 PHPbench 测试各版本 PHP 的性能结果。尽管Phoronix 方面认为PHP Micro 基准测试作用不大,但从测试结果来看,它们反映了PHP 在过去几年中的进步。

可以看到的是,自 PHP 5.6 推出以来,该语言在过去的几年里发展的都还不错。PHP更新版本不仅延续了PHP 7.x 版本中的稳定性,而且从PHP 8.0到8.1又实现了约4%的性能额外改进。 与PHP 7.0相比,PHP 8.1性能提升了44% ,如果和老版本PHP 5.x版本相比,PHP 8.1性能的提升更加明显。

图一:PHP各个版本的性能表现情况(数值越大性能越好)

微基准测试作为对整体测试的补充,可以帮助程序员跟踪自己的更改是使代码变快还是变慢。

从图二PHP微基测试(PHP Micro Benchmarks)结果来看,主要测试了Zend框架,其中PHP 8.0版本表现最完美,用时最少,运行时间仅为PHP 5.6.40版本的三分之一;运行速度与PHP 7.0相比提升将近 1 倍左右。

本次性能对比还是使用PHPBench基准套件(Benchmark Suite)进行测试。通过图一我们可以得知PHP 7.0版本比PHP 5.6快两倍多。 PHP 7.3的性能同样表现不错,相比7.0版本性能明显提升。

图二:PHP 微基准测试(分值越小越好)

测试套件自测结果(Phoronix Test Suite Self Test )图三来看 ,据了解Test Suite主要围绕XML解析、JSON生成和其他常见的各种代码路径来执行基准测试。我们发现PHP的性能则正在不断迭代,从PHP 5.6.40到7.0.33实现了性能3倍的突破。

此外,我们还可以从图三了解到,从PHP 7.3到PHP 8.0基本持平后,PHP 8.1实现了一个不错的改进。大部分显著的改进主要出现在PHP 5.x后期和PHP 7.x早期发布的时候。

图三:测试套件自测结果(数值越小越好)

再从图四的渲染测试结果来看,我们发现,PHP的各个版本都在朝着正确地方向继续发展。和上文一样,其中PHP 5.6版本到PHP 7.x版本性能改进力度还是最大,PHP 7.x版本到PHP 8.x版本也有很大改善,数值从262.39降低至53.49。如果PHP 7.0与PHP 8.1进行对比,PHP 8.1成绩是它们的4倍左右。

图四:渲染测试(数值越小性能越好)

最后,我们从图五PHP语言内存使用峰值情况来看,我们惊讶地发现其中PHP 7.x版本到PHP 8.0版本数据差不多。然而PHP 8.1比PHP之前任何一个版本相比,它的内存使用率最低。

图五:内存使用峰值(数值越小性能越好)

总的来说,虽然PHP存在时间长,市场占有率在逐年降低,但PHP依旧活着并且做得很好。

下一节:前 Oracle 公司首席软件工程师、MySQL 优化器团队成员 Steinar H. Gunderson 在自 Oracle 离职前发布了一篇名为《Leaving MySQL》的博客。他在博客中写道,MySQL 是非常糟糕的,强烈建议大家考虑使用 Postgres。