外国科技媒体 Phoronix 发布了针对 PHP 8 的性能基准测试报告。由于 PHP 8 Alpha1 大约要到 6 月中旬才发布,所以 Phoronix 从 PHP 8 最新的 Git 代码(截至 5 月底)构建了用于测试的版本。PHP 8 重要新特性除了新的 JIT 编译器,还包括新的静态返回类型、union types 2.0(联合类型)和 attributes(属性)等。
用于参考对比的版本包括:PHP 7.4.6, 7.3.18, 7.2.31, 7.1.33, 7.0.33, 5.6.39, 5.5.38 和 5.4.44,以及启用了 JIT Just In Time) 的 PHP 8。
所有受测试的版本都是在相同系统中使用相同的编译器和 PHP 配置文件以相同的方式进行构建,测试环境如下:
测试结果如下:
上图显示了使用 PHPbench 测试各版本 PHP 的性能结果。可以看到,从 PHP 7.4 stable 到 PHP 8 有小幅度改进,大约是 7% 的提升,但如果 PHP 8 启用了 JIT,性能改进可以说是非常明显,比 PHP 7.4 stable 提升了 92%。至于更旧的版本,PHP 8 with JIT 的性能是 PHP 5.4 的 5 倍。
上图是各版本 PHP 微服务基准测试的结果,通过一些 PHP 自带的内置测试,可以看到 PHP 8.0 的速度比已经很快的 PHP 7.4 略有提高,而启用 JIT 支持后,其速度更是碾压全场。
上图的测试结果显示,在使用 Phoronix Test Suite Self Tests 进行测试的过程中,无论是否开启 JIT,PHP 8 的性能
与 PHP 7 的成绩都没有明显的改进,主要是遇到了 I/O 瓶颈,所以总体上没有产生太大的差异。
同样的,在渲染测试和合并测试方面,启用 JIT 的 PHP 8 没有产生明显的优势,不过与旧版本 PHP 5 相比,PHP 8 的性能有了显著的提升。
上图是综合了各测试结果的评分数据对比,就目前的开发状态来看,PHP 8.0 的速度是 PHP 5.4-5.6 的 3 倍左右,启用 JIT 后,就变成了 4 倍左右的差距。
从数据来看,PHP 8.0 是一个相当值得期待的版本,无论是性能方面的提升还是语言特性的增加。