Phoronix 發布PHP 8 性能基準測試
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 是一個相當值得期待的版本,無論是性能方面的提升還是語言特性的增加。