PHP 效能測試與比較 (2024Q3) - PHP8/PHP7 Debian/Alpine nginx-php-fpm

Post Title Image (圖片來源:Photo by Jason Dent on Unsplash)

這是和好友同事一起開發、調整、維護的 PHP 容器。原始設計目的是想讓 php-fpm 與 nginx 結合,形成一個簡化的環境,能方便地使 Laravel 運作在雲原生環境、AWS Fargate、Amazon ECS 等環境下。我們將之拿來作為基底,用於手邊各種專案的教學與實作、各種比較測試、包含用於 x86/ARM 運算架構比較等等。

隨著 PHP 新版本的更新與發布,我們計畫將做過的效能測試比較,每季(沒忘記的話)釋出一份測試結果與 PHP 同好們一起分享。

預覽



關於測試 Our PHP Benchmarks

  • 機器
    • Apple M1, 16 GB
  • 變數
    • OS
      • Debian 11 bullseye, Debian 12 bookworm
      • alpine3.17, alpine3.18
    • PHP
      • 8.4.0beta4, 8.4.0beta3, 8.4.0alpha4, 8.4.0alpha2, 8.4.0alpha1
      • 8.3.11, 8.3.10, 8.3.9, 8.3.8, 8.3.7, 8.3.6, 8.3.4, 8.3.3, 8.3.2, 8.3.0
      • 8.2.23, 8.2.22, 8.2.21, 8.2.20, 8.2.19, 8.2.18, 8.2.17, 8.2.16, 8.2.15, 8.2.13, 8.2.12, 8.2.11, 8.2.10, 8.2.9
      • 8.1.29, 8.1.28, 8.1.27, 8.1.26, 8.1.25, 8.1.24, 8.1.23, 8.1.22
      • 8.0.30, 8.0.29, 8.0.28, 8.0.27, 8.0.26
      • 7.4.33, 7.4.32, 7.4.30, 7.4.29, 7.4.28
      • 7.3.33, 7.3.32, 7.3.31, 7.3.30, 7.3.29
    • nginx
      • 1.24.0
      • 1.25.4
      • 1.26.2
      • 1.27.1
  • 測試
    • 1 Thread
    • 1 Conn
    • 60s
    • 每個變數組合各自測試 10 次 (N = 10)

整理這類比較的數據,從設計環境、實作、量測、資料採集、整理、製圖、總結歸納等步驟做下來,滿燒腦也滿有趣的,若內容中有任何可以調整或改進之處、或建議其他量測方式,歡迎留言或開個 issue 給我們,非常感謝。


測試項目 01 phpinfo

RPS (phpinfo)

  • RPS = Requests per second. More is Better.

Latency (phpinfo)

  • Latency. Fewer is Better.

歷史資料 History


參考資料 Reference

PHP 8.4

  • TBD for Migration

PHP 8.3

PHP 8.2

PHP 8.1

PHP 8.0

PHP 7.4

PHP 7.3

PHP 7.2

PHP 7.1

PHP 7.0

PHP 5.6

Loading comments…