Benchmark PHP: 8.5 vs 8.4, 8.3 dan 7.4

Setiap tahun, tepat sesuai jadwal, versi PHP baru dirilis pada akhir November.
seberapa jauh peningkatan performa rilis baru ini di berbagai framework dan aplikasi populer?

Tes menunjukkan bahwa secara umum, performa antara versi 8.2, 8.3, 8.4, dan 8.5 tidak banyak berubah untuk aplikasi demo Laravel, Symfony, dan WordPress.
Beralih ke versi PHP terbaru bukanlah jalan pintas ajaib untuk performa yang lebih baik.

Namun, tidak semuanya suram, Dalam postingan kami tentang Performa, Operasi, dan Debugging PHP 8.5, kami menyoroti beberapa cara konkret untuk memanfaatkan fitur-fitur baru guna meningkatkan performa.
Namun perlu diingat bahwa peningkatan ini hanya relevan jika Anda menggunakan fungsionalitas yang sesuai dan mungkin memerlukan beberapa upaya untuk mengintegrasikannya.

Faktor terpenting untuk performa adalah arsitektur aplikasi Anda dan kode yang Anda tulis. Untuk mengidentifikasi di mana harus memulai pengoptimalan aplikasi Anda, dari perbandingan ini kami dapat membantu menentukan area yang perlu ditingkatkan.

Untuk melakukan benchmark PHP, Kita telah menyiapkan proyek PHP populer berikut:
– Symfony dengan PHP 8.5, 8.4, 8.3, dan 8.2
– WordPress dengan PHP 8.5, 8.4, 8.3, dan 7.4
– Laravel dengan PHP 8.5, 8.4, 8.3 dan 8.2

Tujuan kami adalah untuk memberi Anda gambaran kasar tentang seberapa besar peningkatan kinerja dalam persentase hanya dengan memperbarui versi PHP.

Baca Juga: 
Cara menginstal Docker di Debian 11

WordPress mendukung banyak versi PHP secara paralel, jadi kami menggunakannya sebagai tolok ukur yang baik untuk perubahan kinerja dari PHP 7 ke 8.5.

Pengaturan

Pembandingan dilakukan dengan ketentuan sebagai berikut:
– Penyediaan Kode dan Infrastruktur: github.com/tideways/php-benchmarks
– Mesin: Hetzner CCX 33 (8 vCore khusus di AMD)
– OS: Debian 13 (“Trixie”)
– Database:
— MySQL 8.4.7 untuk WordPress dan Laravel
— SQLite 3 untuk Symfony
– PHP (semua dibuat oleh deb.sury.org): 7.4.33, 8.2.29, 8.3.27, 8.4.14, 8.5.0 RC 3
— JIT tidak diaktifkan
— FPM dengan kumpulan statis dan 17 pekerja.
– Proyek: Laravel 12.37.0, Symfony 7.3.6, WordPress 6.8.3
– Vegeta v12.12.0
– HAProksi 3.0.11
Anda dapat menemukan lebih banyak tentang metodologi setelah hasilnya.

Hasil

Symfony
Mengupgrade PHP 8.4 ke 8.5 saja membuat aplikasi demo Symfony berjalan dengan kinerja yang hampir sama ketika melakukan simulasi dalam jumlah tetap yaitu 100 permintaan/menit. Fluktuasi berada dalam batas kesalahan.

Ketika dijalankan dengan 15 permintaan bersamaan, permintaan/detik juga tidak berbeda secara signifikan antar versi PHP:

Laravel

Memutakhirkan hanya PHP 8.4 ke 8.5 tidak menunjukkan perbedaan nyata terhadap waktu respons aplikasi demo Laravel.

Dan permintaan/detiknya juga berdekatan.

WordPress

Mirip dengan WordPress, peningkatan dari PHP 8.4 ke 8.5 tidak menunjukkan perubahan waktu respons yang signifikan.

Dan permintaan/detik untuk 15 pengguna secara bersamaan hampir sama, dengan hanya PHP 7.4 yang menunjukkan angka ~5% lebih rendah.

Baca Juga: 
Cara Mengunduh dan Memasang Auto-GPT Langkah demi Langkah

Catatan Lebih Lanjut tentang Metodologi

Dengan benchmarking, hasilnya sangat bergantung pada asumsi dan pengaturan. Ada beberapa perubahan yang kami buat pada benchmark PHP populer lainnya, dan kami ingin mendiskusikan metodologi kami di sini.

Kami menjalankan benchmark dalam dua mode:
– Dengan permintaan tetap per detik, dengan fokus pada waktu respons
– Dengan tingkat konkurensi tetap, dengan fokus pada permintaan per detik.

Mengapa kami tidak hanya melaporkan kinerja dalam permintaan per detik? Tolok ukur lain sering kali membandingkan apakah versi PHP baru dapat melayani lebih banyak permintaan per detik. Mereka melakukan ini dengan menjalankan permintaan sebanyak mungkin dengan sejumlah thread bersamaan yang membuat permintaan baru.

Ini memberikan perbandingan sintetik atau buatan karena untuk skenario dunia nyata Anda tidak akan pernah menjalankan aplikasi PHP pada batas kapasitas dan mengeluarkan permintaan sebanyak mungkin.

Sebaliknya, waktu respons atau waktu-ke-byte pertama (TTFB) dalam pemuatan reguler adalah hal yang Anda minati untuk memahami bagaimana kinerja memengaruhi pengguna sebenarnya.

Kami tidak menjalankan pengujian dengan konkurensi yang sangat tinggi karena kami ingin memastikan angka-angka tersebut mencerminkan kinerja PHP, bukan penjadwal proses sistem operasi, sehingga tidak terjadi perselisihan CPU.






Reporter: Adi Prabowo

Setiap tahun, tepat sesuai jadwal, versi PHP baru dirilis pada akhir November.
seberapa jauh peningkatan performa rilis baru ini di berbagai framework dan aplikasi populer?

Tes menunjukkan bahwa secara umum, performa antara versi 8.2, 8.3, 8.4, dan 8.5 tidak banyak berubah untuk aplikasi demo Laravel, Symfony, dan WordPress.
Beralih ke versi PHP terbaru bukanlah jalan pintas ajaib untuk performa yang lebih baik.

Namun, tidak semuanya suram, Dalam postingan kami tentang Performa, Operasi, dan Debugging PHP 8.5, kami menyoroti beberapa cara konkret untuk memanfaatkan fitur-fitur baru guna meningkatkan performa.
Namun perlu diingat bahwa peningkatan ini hanya relevan jika Anda menggunakan fungsionalitas yang sesuai dan mungkin memerlukan beberapa upaya untuk mengintegrasikannya.

Faktor terpenting untuk performa adalah arsitektur aplikasi Anda dan kode yang Anda tulis. Untuk mengidentifikasi di mana harus memulai pengoptimalan aplikasi Anda, dari perbandingan ini kami dapat membantu menentukan area yang perlu ditingkatkan.

Untuk melakukan benchmark PHP, Kita telah menyiapkan proyek PHP populer berikut:
– Symfony dengan PHP 8.5, 8.4, 8.3, dan 8.2
– WordPress dengan PHP 8.5, 8.4, 8.3, dan 7.4
– Laravel dengan PHP 8.5, 8.4, 8.3 dan 8.2

Tujuan kami adalah untuk memberi Anda gambaran kasar tentang seberapa besar peningkatan kinerja dalam persentase hanya dengan memperbarui versi PHP.

Baca Juga: 
Menggunakan Headless WordPress dengan Next.js dan Vercel

WordPress mendukung banyak versi PHP secara paralel, jadi kami menggunakannya sebagai tolok ukur yang baik untuk perubahan kinerja dari PHP 7 ke 8.5.

Pengaturan

Pembandingan dilakukan dengan ketentuan sebagai berikut:
– Penyediaan Kode dan Infrastruktur: github.com/tideways/php-benchmarks
– Mesin: Hetzner CCX 33 (8 vCore khusus di AMD)
– OS: Debian 13 (“Trixie”)
– Database:
— MySQL 8.4.7 untuk WordPress dan Laravel
— SQLite 3 untuk Symfony
– PHP (semua dibuat oleh deb.sury.org): 7.4.33, 8.2.29, 8.3.27, 8.4.14, 8.5.0 RC 3
— JIT tidak diaktifkan
— FPM dengan kumpulan statis dan 17 pekerja.
– Proyek: Laravel 12.37.0, Symfony 7.3.6, WordPress 6.8.3
– Vegeta v12.12.0
– HAProksi 3.0.11
Anda dapat menemukan lebih banyak tentang metodologi setelah hasilnya.

Hasil

Symfony
Mengupgrade PHP 8.4 ke 8.5 saja membuat aplikasi demo Symfony berjalan dengan kinerja yang hampir sama ketika melakukan simulasi dalam jumlah tetap yaitu 100 permintaan/menit. Fluktuasi berada dalam batas kesalahan.

Ketika dijalankan dengan 15 permintaan bersamaan, permintaan/detik juga tidak berbeda secara signifikan antar versi PHP:

Laravel

Memutakhirkan hanya PHP 8.4 ke 8.5 tidak menunjukkan perbedaan nyata terhadap waktu respons aplikasi demo Laravel.

Dan permintaan/detiknya juga berdekatan.

WordPress

Mirip dengan WordPress, peningkatan dari PHP 8.4 ke 8.5 tidak menunjukkan perubahan waktu respons yang signifikan.

Dan permintaan/detik untuk 15 pengguna secara bersamaan hampir sama, dengan hanya PHP 7.4 yang menunjukkan angka ~5% lebih rendah.

Baca Juga: 
Instalasi Virtualmin dengan Nginx dan MariaDB di Debian 11

Catatan Lebih Lanjut tentang Metodologi

Dengan benchmarking, hasilnya sangat bergantung pada asumsi dan pengaturan. Ada beberapa perubahan yang kami buat pada benchmark PHP populer lainnya, dan kami ingin mendiskusikan metodologi kami di sini.

Kami menjalankan benchmark dalam dua mode:
– Dengan permintaan tetap per detik, dengan fokus pada waktu respons
– Dengan tingkat konkurensi tetap, dengan fokus pada permintaan per detik.

Mengapa kami tidak hanya melaporkan kinerja dalam permintaan per detik? Tolok ukur lain sering kali membandingkan apakah versi PHP baru dapat melayani lebih banyak permintaan per detik. Mereka melakukan ini dengan menjalankan permintaan sebanyak mungkin dengan sejumlah thread bersamaan yang membuat permintaan baru.

Ini memberikan perbandingan sintetik atau buatan karena untuk skenario dunia nyata Anda tidak akan pernah menjalankan aplikasi PHP pada batas kapasitas dan mengeluarkan permintaan sebanyak mungkin.

Sebaliknya, waktu respons atau waktu-ke-byte pertama (TTFB) dalam pemuatan reguler adalah hal yang Anda minati untuk memahami bagaimana kinerja memengaruhi pengguna sebenarnya.

Kami tidak menjalankan pengujian dengan konkurensi yang sangat tinggi karena kami ingin memastikan angka-angka tersebut mencerminkan kinerja PHP, bukan penjadwal proses sistem operasi, sehingga tidak terjadi perselisihan CPU.






Reporter: Adi Prabowo

Untuk mendapatkan Berita & Review menarik Saksenengku Network
Google News

Artikel Terkait

Terpopuler