Saya sering menggunakan mikro & router jadi saya memutuskan untuk melakukan tolok ukur. Benchmark ini dibuat berkat (@kenjis) PHP-Framework-Benchmark. Saya mengubah AB menjadi awk, ditambahkan ke tabel "jenis kerangka kerja" dan sesuatu yang lain ...
Lai Benchmark dengan Bantuan wrk https://github.com/wg/wrk
Proyek ini berupaya mengukur overhead minimum (biaya bootstrap minimum) kerangka PHP di dunia nyata.
Jadi saya pikir aplikasi minimum untuk benchmark tidak boleh termasuk:
Komponen seperti mesin template atau pustaka ORM/database berada di luar ruang lingkup dalam proyek ini.
Ini adalah cabang master .
--optimize-autoloader .Beberapa orang mungkin berpikir menggunakan konfigurasi default tidak adil. Tapi saya pikir konfigurasi default kerangka kerja adalah pernyataan tentang apa itu. Konfigurasi default adalah titik awal yang baik untuk mengetahui kerangka kerja. Dan saya tidak dapat mengoptimalkan semua kerangka kerja. Beberapa kerangka kerja dioptimalkan, beberapa tidak, itu tidak adil. Jadi saya tidak menghapus komponen/konfigurasi apa pun.
Tetapi jika Anda tertarik untuk membandingkan dengan optimasi (menghapus komponen/konfigurasi yang tidak digunakan), lihat Optimalkan Cabang.
Jika Anda menemukan sesuatu yang salah dengan kode saya, jangan ragu untuk mengirim permintaan tarik. Tapi harap dicatat hanya mengoptimalkan untuk "Hello World!" tidak bisa diterima. Membangun "Hello World" dengan tercepat! Aplikasi bukanlah tujuan dalam proyek ini.
Ini adalah tolok ukur saya, bukan milik Anda. Saya mendorong Anda untuk menjalankan lingkungan (setara produksi) Anda. (2019/01/27)
Tampilkan grafik 



CentOS 7.6 Server saya
| kerangka | permintaan per detik | relatif | memori puncak | relatif | file | jenis |
|---|---|---|---|---|---|---|
| Tanpa kerangka kerja | 11.742.54 | 19.7 | 0.41 | 1.0 | 1 | Tanpa kerangka kerja |
| Altorouter | 3.619.92 | 6.1 | 0,50 | 1.2 | 6 | router |
| Php-router | 3.358.57 | 5.6 | 0,52 | 1.3 | 8 | router |
| Fastroute | 2.463.59 | 4.1 | 0,55 | 1.3 | 15 | router |
| penerbangan | 1.660.40 | 2.8 | 0.68 | 1.6 | 15 | mikro |
| agak mabuk | 1.617.18 | 2.7 | 0.66 | 1.6 | 16 | mikro |
| Limonade | 1.439.16 | 2.4 | 1.02 | 2.5 | 6 | mikro |
| Siler-1.3 | 1.397.18 | 2.3 | 0.88 | 2.1 | 22 | mikro |
| Klein.php | 1.271.65 | 2.1 | 0.78 | 1.9 | 20 | router |
| Bearframework | 1.065.35 | 1.8 | 0.94 | 2.3 | 22 | mikro |
| Fatfree | 1.049.13 | 1.8 | 1.50 | 3.6 | 6 | mikro |
| Slim-3.x | 595.05 | 1.0 | 1.39 | 3.4 | 56 | mikro |
macos mojave 10.14.2 desktop saya
| kerangka | permintaan per detik | relatif | memori puncak | relatif | file | jenis |
|---|---|---|---|---|---|---|
| Tanpa kerangka kerja | 4.573.15 | 7.2 | 0.37 | 1.0 | 1 | Tanpa kerangka kerja |
| Altorouter | 2.617.56 | 4.1 | 0.47 | 1.3 | 6 | router |
| Php-router | 2.417.23 | 3.8 | 0.47 | 1.3 | 8 | router |
| Fastroute | 1.947.44 | 3.1 | 0,51 | 1.4 | 15 | router |
| penerbangan | 1.545.02 | 2.4 | 0.63 | 1.7 | 15 | mikro |
| agak mabuk | 1.410.26 | 2.2 | 0.61 | 1.6 | 16 | mikro |
| Siler-1.3 | 1.330.79 | 2.1 | 0.77 | 2.1 | 22 | mikro |
| Klein.php | 1.246.66 | 2.0 | 0.74 | 2.0 | 20 | router |
| Limonade | 1.193.01 | 1.9 | 1.00 | 2.7 | 6 | mikro |
| Bearframework | 1.108.75 | 1.8 | 0,90 | 2.4 | 22 | mikro |
| Fatfree | 1.062.73 | 1.7 | 1.44 | 3.9 | 6 | mikro |
| Slim-3.x | 631.79 | 1.0 | 1.31 | 3.5 | 56 | mikro |
Catatan (1): Tolok ukur ini dibatasi oleh wrk https://github.com/wg/wrk Performance.
Instal kode sumber sebagai http: // localhost/php-micro-router-framework-benchmark/:
$ git clone https://github.com/dejurin/php-micro-router-framework-benchmark.git
$ cd php-micro-router-framework-benchmark
$ bash setup.sh
Jalankan tolok ukur:
$ bash benchmark.sh
Lihat http: // localhost/php-micro-router-framework-benchmark/.
Jika Anda ingin membandingkan beberapa kerangka kerja:
$ bash setup.sh PHP-Router/ flight/ lumen/
$ bash benchmark.sh PHP-Router/ flight/ lumen/
Saya menambahkan di bawah ini di /etc/sysctl.conf
# Added
net.netfilter.nf_conntrack_max = 100000
net.nf_conntrack_max = 100000
net.ipv4.tcp_max_tw_buckets = 180000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 10
dan jalankan sudo sysctl -p .
Jika Anda ingin melihat konfigurasi saat ini, jalankan sudo sysctl -a .